首页 > 代码库 > Linux中权限管理之文件特殊权限

Linux中权限管理之文件特殊权限

SetUID
  1.只有在可执行的二进制程序上设定SUID权限才是有意义的
  2.命令执行者要对该程序拥有执行权限
  3.命令执行者在执行该程序时获得该程序文件属主的身份
  4.SetUID权限只在该程序执行中有效,也就是身份改变只在程序执行中有效

  例如:
    passwd命令拥有SetUID权限,所以普通用户可以改自己的密码
    普通用户调用passwd命令的时候,会临时使用passwd宿主的身份运行,即root用户
    真正执行的时候会临时通过root身份去修改/etc/shadow文件的内容

    通过ll命令查看passwd信息(用户权限标识那里x那一位成了s):
    [root@localhost temp]# ll /usr/bin/passwd
    -rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd
设定SetUID
  4代表SetUID
  chmod 4755 文件名
  chmod u+s 文件名
取消SetUID
  chmod 755 文件名
  chmod u-s 文件名

 


SetGID
  针对文件:
    1.只有在可执行的二进制程序上设定SGID权限才是有意义的
    2.命令执行者要对该程序拥有执行权限
    3.命令执行者在执行该程序时获得该程序文件属组的身份
    4.SetGID权限只在该程序执行中有效,也就是组身份改变只在程序执行中有效
    注:SGID对于文件的作用和SUID很像,只是这里提升的是组
  针对目录:
    1.普通用户必须对此目录拥有读和执行权限,才能进入此目录
    2.普通用户在此目录中的有效组会编程此目录的属组
    3.若普通用户对次目录具有写权限,新建的文件的默认组是这个目录的属组
设定SetGID
  2代表SetGID
  chmod 2755 文件名
  chmod g+s 文件名
取消SetGID
  chmod 755 文件名
  chmod g-s 文件名

 


StickyBIT(粘着位)
  1.粘着位目前只对目录有效
  2.普通用户对该目录拥有写和执行权限
  3.如果没有粘着位,因为普通用户拥有写权限,所以可以删除此目录下文件,包括其他用户建立的
  4.如果有粘着位,root可以删除所有文件,普通用户只能删除自己创建的文件,不能删除别人的
  5.其他用户权限标识那里x那一位成了t
  例如:
    tmp目录
    [root@localhost temp]# ll -d /usr/tmp/
    drwxrwxrwt. 2 root root 4096 10月 9 09:25 /usr/tmp/
设定粘着位
  1代表粘着位
  chmod 1755 目录名
  chmod o+t 目录名
取消粘着位
  chmod 755 目录名
  chmod o-t 目录名

Linux中权限管理之文件特殊权限