ACL权限
dumpe2fs -h /dev/sda5
-h 仅显示超级块中信息,而不显示磁盘块组的详细信息
df 查看当前分区
临时开启分区ACL权限
永久开启分区ACL权限
vi /etc/fstab
UUID=XXXXX / ext4 defaults,acl 1 1
加入acl
mount -o remount,acl /
重新挂载根分区 , 并挂载加入acl权限 使修改生效
getfacl 文件名 查看acl权限
setfacl 选项 文件名 设定ACL 权限的命令
-m 设定ACL 权限
-x 删除指定的ACL权限
-b 删除所有的ACL权限
-d 设定默认ACL权限
-k 删除默认ACL权限
-R 递归设定ACL权限
例:
setfacl -m u:lw:rx /av
给用户lw赋予r-x权限,使用“u:用户名:权限”格式
例:
setfacl -m g:tgroup2:rwx /av
为用户组tgroup2 分配ACL权限,使用“g:组名:权限” 格式
例:
setfacl -m m:rx 文件名 修改最大有效权限
设定mask权限r-x 。使用“m:权限” 格式
例:
setfacl -x u:用户名 文件名
删除指定用户的ACL权限
例:
setfacl -b 文件名
会删除文件的所有ACL权限
最大有效权限 mask
mask是用来指定最大有效权限的,如果我给用户赋予了ACL权限,是需要和mask的权限“相予”才能得到用户的真正权限
递归ACL权限
递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限
递归权限仅能赋予目录,不能赋予文件
setfacl -m u:用户名:权限 -R 目录名
默认ACL权限
默认ACL权限的作用是如果给父目录设定了默认的ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限
setfacl -m d:u:用户名:权限:目录名
递归是指对当前目录下已经存在的子文件赋予ACL权限,默认是指对这个目录下以后新建的子文件赋予ACL权限
sudo权限
root 把本来只能超级用户执行的命令赋予普通用户执行
sudo的操作对象是系统命令
sudo使用
visudo 实际修改的是 /etc/sudoers 文件
root ALL = (ALL) ALL
用户名 被管理主机的地址 =(可使用的身份) 授权命令(绝对路径)
# %where ALL = (ALL) ALL
组名 被管理主机的地址 = (可使用的身份) 授权命令(绝对路径)
例:
cdd ALL =(ALL) /sbin/shutdown -r now
赋予普通用户重启权限
用户执行:
sudo /sbin/shutdown -r now
例:
cdd ALL = (ALL) /usr/sbin/useradd
cdd ALL = (ALL) /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root
赋予用户添加用户权限
赋予用户修改密码权限 修改密码时用户名至少要包含字母 , 不允许设置空密码, 不允许给root设置密码
文件特殊权限
1. SetUID的功能
1. 只有可以执行的二进制程序才能设定SUID权限
2. 命令执行者要对改程序用户x(执行)权限
3. 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
4. SetUID 权限只在该程序执行过程中有效,也就是说身份改变只在执行过程中有效
2. 设定SetUID的方法
1. 4代表SUID
chmod 4775 文件名
chmod u+s 文件名
passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码
cat 命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容
3. 取消SetUID的方法
chmod u-s 取消所属者S权限
chmod 0755 取消所属者S权限
4. 危险的SetUID
1. 关键目录应严格控制写权限,比如“/”,“/usr”等
2. 用户的密码设置要严格遵循密码三原则
3. 对系统中默认应该具有SetUID权限的文件做一个列表,定时检查有没有这个之外的文件被设置了SetUID列表
find / -perm -400 -o -prem -2000 >suid.log
扫描系统中有没有新增的suid
find / -perm -4000 -o -perm -2000 >/tmp/setuid.check
#搜索系统中所有的SUID和SGID文件,并保存到临时目录中
for i in $(cat /tmp/setuid.check)
#做循环,每次循环取出临时文件中的文件名
{
do
grep $i /root/suid.log > dev/null
#对比这个文件是否在模板文件中
if["$?"!="0"]
#检测上一个命令的返回值,如果不为0,证明上一个命令报错
then
echo “$i is not in list file!”>>/root/suid_log_$(date+$F)
#如果文件名不在模板当中,则输出错误休息,并把错误信息报错到日志中
fi
done
rm -rf /tmp/setuid.check
}
SetGID
1. SetGID 针对文件的作用
1. 只有可执行的二进制程序才能设置SGID权限
2. 命令执行者要对该陈谷拥有X(执行)权限
3. 命令执行在执行程序的时候,组身份升级为该程序文件的属组
4. SetGID 权限同样只在该程序执行过程中生效,也就是说组身份改变只在程序执行过程中有效
例:
1. /usr/bin/locate 是可执行文件,可赋予SGID
2. 执行用户lamp对/usr/bin/locate命令拥有执行权限
3. 执行/usr/bin/locate命令时,组身份会升级为slocate组而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库
4. 命令结束,lamp用户的组返回为lamp组
2. SetUID 针对目录的作用
1. 普通用户必须针对此目录拥有r和x权限,才能进入此目录
2. 普通用户在此目录中的有效组会变成此目录的所属组
3. 若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组
3. 设定SetGID
2代表SGID
chmod 2755 文件名
chmod g+s 文件名
4. 取消SetGID
chmod 0755 文件名
chmod g-s 文件名
SBIT粘着位作用
1. 粘着位目前只对目录有效
2. 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限
3. 如果没有粘着位,因为普通用户拥有w权限,所有可以删除目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己简历的文件,但是不能删除其他用户建立的文件
设置与取消粘着位
chmod 1755 目录名
chmod o+t 目录名
取消粘着位
chmod 0777 目录名
chmod o-t 目录名
不可改变位权限
chattr 权限
1. chattr命令格式
chattr [+-=][选项] 文件或目录名
+ 增加权限
- 删除权限
= 等于某权限
chattr 选项包括 i和a
a等价于append i等价于insert
选项:
i: 如果丢文件设置i属性,那么不允许对文件进行删除改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件
a: 如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除
查看文件系统属性
lsattr 选项 文件名
选项:
-a 显示所有文件和目录
-d 若目标是目录,仅列出目录本身的属性,而不是子文件的
Linux权限管理之特殊权限
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Sudo权限作用:1.root把本来超级用户执行的命令赋予普通用户执行 2.sudo操作对象是系统命令 首先在/e...
- 一、更改文件/目录的权限 命令名称:chmod命令英文原意:change the permissions mode...