一、chmod:修改目录(文件)权限
建议使用数字管理文件或目录的权限:4代表r,2代表w,1代表x
-R:递归修改目录中的权限
755代表 rw-r-xr-x
二、chown:改变目录(文件)属主或属组
-R:递归修改目录的属主或属组
chown .lcs /tmp#修改 /tmp 目录的属组为lcs
chown lcs. /tmp#修改 /tmp 目录的属主为lcs
chown lcs.lcs /tmp#修改 /tmp 目录的属主和属组为lcs
三、setfacl:不破坏目录(文件)原有权限的情况下,设置目录(文件)的ACL权限
常用参数
-b:删除所有扩展的ACL规则,基本的ACL规则将被保留(属主,属组,其他)
-d:设置默认的ACL规则
--test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出
-R:递归对所有文件及目录进行操作
-m:添加ACL权限
-x:删除某项ACL权限
例1、添加 liu 用户对 /var/log/ 目录的ACL权限
setfacl -m u:liu:rwx /var/log/
例2、删除 liu 用户对 /var/log/ 目录的ACL权限
setfacl -x u:liu /var/log/
例3、设置目录的默认ACL权限
# 先设置默认ACL权限
setfacl -m d:u:liu:rwx /var/log
# 再递归设置目录下已有内容的ACL权限
setfacl -R -m u:liu:rwx /var/log
例4、设置最大有效权限mask(目录)
mask 的设置必须遵循最后设置原则,其它ACL 均设置完成最后设置 mask 默认 ACL 才会正常生效,不然会失效。其次,生产环境中我们往往将 mask 默认权 限设置成 rwx,然后针对特殊用户和组设置不同的权限
setfacl -R -m m:rwx /var/log
四、SetUID:当一个具有执行权限的文件具有SetUID权限后,普通用户执行这个文件时将以文件属主的身份执行
① 只能对可执行的文件设定SetUID权限
② 命令的执行者要对该文件有x(执行权限)
③ 命令执行者在执行该文件时获得该文件属主的身份
④ SetUID权限只在对该文件执行过程中有效
添加SetUID
chmod 4755 /usr/bin/passwd
五、SetGID:可以对文件或者目录进行设置
添加SetGID
chmod 2755 /usr/bin/locate
对文件来说:
① 只能对可执行的文件设定SetGID权限
② 命令的执行者要对该文件有x(执行权限)
③ 命令执行者在执行该文件时获得该文件属组成员的身份
④ SetGID权限只在对该文件执行过程中有效
对目录来说:
① 普通用户要拥有该目录的rwx权限
② 普通用户在此目录中的有效组会变成此目录的属组
③ 新建文件(目录)的属组是该目录的属组
④ 新建目录继承此目录的sgid权限
六、Sticky BIT:只对目录有效,普通用户要对该目录拥有rwx权限,普通用户只能删除自己在该目录下建立的文件,不能删除其它用户建立的文件(/tmp 目录就是一个典型的例子)
添加SBIT
chmod 1777 /tmp
七、visudo:让普通用户使用超级管理员命令
visudo
User_Alias ADMINS = zhangsan,lisi #定义一个用户组ADMINS
Cmnd_Alias WEB = /etc/rc.d/init.d/httpd reload, /etc/rc.d/init.d/httpd configtest, /usr/bin/vim /etc/httpd/conf/httpd.conf #定义一个命令组WEB
ADMINS ALL=(ALL) NOPASSWD:WEB #让ADMINS组的用户sudo时不用输入密码就能执行命令
例:授权lcs用户可以添加新用户并修改用户密码,但不允许修改自己的密码和root的密码
lcs ALL=(ALL) /usr/sbin/useradd [a-zA-Z]*, /usr/bin/passwd ,!/usr/bin/passwd root, !/usr/bin/passwd ""
网友评论