AI智能
改变未来

5.2权限管理-文件特殊权限——linux

一、SetUID

  1. SetUID的功能
    *只有可执行的二进制程序才能设定SUID权限
    *命令执行者要对该程序拥有x(执行)权限
    *命令执行者在执行改程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
    *SetUID权限只在改程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
  • passwd命令拥有SetUID权限,所以普通可以修改自己的密码
    [rootlocalhost ~]# ll /usr/bin/passwd
    -rwsr-xr-x. 1 root root 26456 2月 22 2020 /usr/bin/passwd
    *cat命令没有SetUID权限看,所以普通用户不能产看/etc/shadow文件内容
    -rwxr-xr-x 1 root root 4756 6月 22 2020 /bin/cat
  1. 设定SetUID的方法
    “4“代表SUID
    [rootlocalhost ~]# chmod 4755 第一个7代表所有者的权限,第二个5代表所属组的 ,第三个5代表其他人的权限
    [rootlocalhost ~]# chmod u+s 文件名
  2. 取消SetUID的方法
    [rootlocalhost ~]# Chmod 755 文件名
    [rootlocalhost ~]# Chmod u-s 文件名
  3. 危险的SetUID
    关键目录应严格控制写(w)权限。比如 “/” ,“usr” 等

二、SetGID
1.SetGID针对文件的作用
*只有可执行的二进制程序才能设置SGID权限
*命令执行者要对该程序拥有x(执行)权限
*命令执行在执行程序的时候,组身份升级为改程序文件的属组
*SetGID权限同样只在改程序执行中生效,也就是说身份改变只在程序执行过程中生效
[rootlocalhost ~]# ll /]usr/bin/locate
-rwx—s—x 1 root slocate 3754 8月 24 2020 /usr/bin/locate

[rootlocalhost ~]# ll /var/bin/mlocate/mlacate.db
-rw-r—– 1 root slocate 1865666 1月 20 04:28 / var/bin/mlocate/mlacate.db

*/usr/bin/locat是可执行二进制程序,可以赋予SGID
*执行用户lamp对/usr/bin/locate命令拥有执行权限
*执行/usr/bin/locate命令时,组身份会升级为slocate库拥有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库
*命令结束,lamp用户的组身份返回为lamp组
2.SeyGID针对目录的作用
*普通用户必须对此用户拥有r和x权限,才能进入此目录
*普通用户在此目录中的有效组会变成组目录的属组
*若普通用户对此用户具有w权限时,新建的文件的默认属组是这个目录的属SetGIX
3.设定SetGID

  • “2“代表SGID
    [rootlocalhost ~]# chmod 2755 文件名
    [rootlocalhost ~]# chmod g+s 文件名
    4.取消SetGID
    [rootlocalhost ~]# chmod 755 文件名
    [rootlocalhost ~]# chmod g-s 文件名

三、Sticky BIT
1.SBIT黏着位的作用
*黏着位目前只对目录有效
*普通用户对该用户拥有w和x权限,即普通用户可以在此目录拥有写入权限
*如果没有黏着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了黏着位,除了root可以删除所有文件,普通用户就算有w权限,也只能删除自己建立的文件,不能删除其他用户建立的文件

最常见的黏着位目录:/tmp
[rootlocalhost ~]# ll -d /tmp
drwxrwxt 3 root root 4512 12月25 11:25 /tmp/

2.设置与取消黏着位
1.设置
“1“代表SBIT
[rootlocalhost ~]# chmod 1755 目录名
[rootlocalhost ~]# chmod o+t 目录名 (o代表other)
2.取消
[rootlocalhost ~]# chmod 755 目录名
[rootlocalhost ~]# chmod o-t 目录名

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 5.2权限管理-文件特殊权限——linux