suid :属主有s权限,意味着任何用户在执行此程序时,不以发起者的身份运行,而是以程序所有者的身份执行。
sgid:属组有s权限,执行此程序时,其进程的属组不再是运行着本人所属的基本组,而是此文件的属组,主要目的不是上述内容,而是在某些场景下,在某个目录中创建的文件属组是目录的属组,而不是用户的基本组。
sticky:附加载other上权限,每个用户只可以删除自己的文件。
FACL用于实现在原有的控制机制之外,再补充一种访问控制功能。
getfacl用以查看文件的访问控制列表
setfacl
-m:设置:setfacl -mu:mysql:rw- /root/abc
-x:删除:setfacl -x u:mysql /root/abc
在有了facl之后,文件权限的检查顺序:
1、用户是否为文件属主
2、用户是否匹配特定的访问控制条目
3、用户是否在文件属组
4、用户所在组是否匹配特定的访问控制条目
5、其它。
如果有其他的文件系统,默认acl是没有打开的。
可以使用umount 之后,mount -oacl 来重新挂载。
写入fstab defaults,acl
tune2fs -o acl /path/to/device 调整卷属性,添加acl特性
tune2fs -o ^acl /path/to/device 删除acl特性
sudo
用于控制某个用户能够以另外一个用户的身份在哪台主机上执行什么命令
格式:who which_host=(run_as_xxuser) commands
建议使用visudo编辑配置文件,有语法检查功能。
别名种类:
用户别名:User_Alias
主机别名:Host_Alias
身份别名:Runas_Alias
命令别名:Cmnd_Alias
别名只能使用大写英文字母,可以使用!取反
User_Alias 名称 = 用户名,%组名,其他用户别名
Host_Alias 名称 = 主机名、ip、网络地址、其他主机别名
Runas_Alias 名称 = 用户名、%组名,其他的Runas组名
Cmnd_Alias 名称 = 命令路径、目录(此目录内的所有命令),其他命令别名
sudo -l 列出可以使用的命令
-k 每次必须输入密码;
tomALL=(root) NOPASSWD: /usr/sbin/useradd PASSWD: /usr/sbin/usermod
User_AliasUSERADMIN = tom %tom
Cmnd_AliasUSERADMINCMND = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel,/usr/sbin/passwd [A-Za-z]*, !/usr/sbin/passwd root
其他配置详见man 5 sudoers
本文出自 “每天进步1%” 博客,请务必保留此出处http://jackyan.blog.51cto.com/2589874/1392357