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权限

 

  • 给用户设定ACL权限
    • setfacl -m u:用户名:权限 文件或目录  
      • 例如 : setfacl  -m u:zhangsan:rx test.txt

 

  • 给用户组设置ACL权限
    • setfacl -m g:组名:权限 文件或目录名 
      • 例如 : setfacl -m g:gro1:rwx test.txt

 

  • 删除用户ACL权限
    • setfacl -x u:用户名  文件或目录名

 

  • 删除用户组ACL权限
    • setfacl -x g:组名  文件或目录名

 

  • 删除文件的所有ACL权限
    •  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

posted @ 2015-12-09 17:31  yinz163diudiu  阅读(152)  评论(0编辑  收藏  举报