Linux特殊权限
************************ ACL权限 ******************************************
acl权限的出现是为了弥补用户权限不足的情况.
例如:文件test.txt,权限如下所示(所属用户具有rw权限,所属组具有r权限,其他用户具有r权限):
假设我想要使用户:张三对该文件有rw权限(修改该文件所有者为zhangsan显然不合适),此时ACL权限便起到作用了。
如下设置该文件ACL权限:
上图所示“+”,表示该文件具有特殊权限,查看该文件ACL权限如下:
上图所示内容说明,用户“zhangsan” 对该文件具有“rw权限”
- 查看acl权限
- getfacl 文件名
- 设定acl权限
- setfacl 选项 文件名
- 选项
- -m : 设定ACL权限
- -x : 删除指定的ACL权限
- -b : 删除文件的所有的ACL权限
- -d : 设定默认的ACL权限
- -k : 删除默认ACL权限
- -R : 递归设定ACL权限
- 选项
- setfacl 选项 文件名
- 给用户设定ACL权限
- setfacl -m u:用户名:权限 文件或目录
- 例如 : setfacl -m u:zhangsan:rx test.txt
- setfacl -m u:用户名:权限 文件或目录
- 给用户组设置ACL权限
- setfacl -m g:组名:权限 文件或目录名
- 例如 : setfacl -m g:gro1:rwx test.txt
- setfacl -m g:组名:权限 文件或目录名
- 删除用户ACL权限
- setfacl -x u:用户名 文件或目录名
- 删除用户组ACL权限
- setfacl -x g:组名 文件或目录名
- 删除文件的所有ACL权限
- setfacl -b 文件名
- setfacl -b 文件名
- 默认ACL权限 :默认ACL权限的 作用是如果父目录设定了默认acl权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限
- setfacl -m d:u:用户名:权限 目录名
- 递归ACL权限 : 递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限
- setfacl -m u:用户名:权限 -R 目录名
***************************** ACL END ************************************
**************************** sudo权限 *************************************
sudo是linux系统管理指令,是允许系统管理员让普通用户(以root身份执行而无需知道root密码)执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。
- root把本来只能超级用户执行的命令赋予普通用户执行
- sudo的操作对象是系统命令
下面介绍如何为用户配置sudo权限 :
- 配置sudo权限命令 : visudo
#实际修改的是:/etc/sudoers文件(配置sudo时的操作相当于“vi”编辑该文件),文件内容格式如下 :
#用户名 被管理主机地址 = (可使用身份) 授权命令(绝对路径,多个命令以逗号隔开) root ALL=(ALL) ALL # %用户组名 被管理主机地址 = (可使用身份) 授权命令(绝对路径) %wheel ALL=(ALL) ALL
- 用户查看拥有的sudo权限 :sudo -l
- 用户执行sudo命令 : sudo 命令
举例如下 :
为用户“zhangsan”添加执行“/usr/sbin/useradd”权限(用户组配置同理)
1、root用户执行 : visudo(为zhangsan配置权限) ,如下所示 :
2、以zhangsan用户登录执行 : sudo -l(查看该用户拥有的sudo权限),如下所示 :
用户需输入自己的密码
3、测试useradd命令,添加用户wangwu : sudo /usr/sbin/useradd wangwu(添加用户成功,则useradd权限添加成功)
注意:新增用户未设置密码是不可以登录的,所以还需为"zhangsan"添加设置密码权限,如下(不能修改root用户密码):
zhangsan ALL=/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd "",!/usr/bin/passwd root