Linux 命令合集(四):权限管理

2017-11-26  本文已影响0人  w也不知道

一、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 ""
上一篇 下一篇

猜你喜欢

热点阅读