特殊权限-SUID,SGID,Sticky学习笔记

SUID : 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者

员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供成都网站制作、成都做网站、微信公众号开发、电商网站开发,微信小程序,软件按需求定制网站等一站式互联网企业服务。

           chmod u+s FILENAME  (添加 SUID 权限)      chmod u-s FILENAME  (除去 SUID 权限)

           如果 FILE 本身原来就有执行权限,则 SUID 显示为 s ; 否则显示 S;

           passwd 命令默认具有 SUID 权限

SGID : 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者

           (目录有SGID权限后,在该目录下创建文件目录时,创建后的属组为目录自身的属组,)

           chmod g+s FILENAME (添加 SGID 权限)       chmod g-s FILENAME (除去 SGID 权限)

Sticky : 在一个公共目录,每个用户都可以创建文件,删除自己的文件,但不能删除别人的文件

            chmod o+t DIR (添加 Sticky 权限)    chmod o-t DIR (删除 Sticky 权限)

权限表示    SUID : 4     SGID :  2     Sticky : 1

           chmod 1755 /tmp/test     #test具有 755 权限 ( 1 : 具有 Sticky 权限 )

           chmod 3755 /tmp/test     #test具有 755 权限 ( 2 : 具有 SGID 权限  +  1 : 具有 Sticky 权限 )

           chmod 5755 /tmp/test     #test具有 755 权限 ( 4 : 具有 SUID 权限  +  1 : 具有 Sticky 权限 )


SUID : 实例测试   让一个普通用户对指定文件具有原本没有的查看权限 (user1用户可以查看 /etc/shadow 文件)

[root@nono ~]# useradd user1     #添加用户 user1
[root@nono ~]# passwd user1
[root@nono ~]# ls -l /etc/shadow  #查看 /etc/shadow 文件, 权限为000 , 所以除 root 用户都不能查看
----------. 1 root root 1053 7月   3 09:54 /etc/shadow
[root@nono ~]# su - user1          #切换到 user1 用户, 应为 /etc/
[user1@nono ~]$ cat /etc/shadow    # user1用户 没有权限查看
cat: /etc/shadow: 权限不够
[root@beiyong2 ~]# chmod u+s /bin/cat   #将 /bin/cat 命令添加 SUID 命令,则 cat 命令的执行者为文件自身的属主,而不是启动者
[root@beiyong2 ~]# ls -l /bin/cat       #SUID命令添加成功 (若 /bin/cat 本身就有执行权限,添加 SUID 命令后,显示为 s 否则为 S)
-rwsr-xr-x. 1 root root 48568 10月 15 2014 /bin/cat
[user1@beiyong2 ~]$ cat /etc/shadow   # user1 可以查看
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::

SGID : 实例测试  三个用户可以在同一目录中,创建文件目录,并互相修改文件内容

[user1@beiyong2 ~]$ tail -5 /etc/passwd      #当前系统中有三个用户
user1:x:500:500::/home/user1:/bin/bash
hbase:x:501:501::/home/hbase:/bin/bash
hadoop:x:502:502::/home/hadoop:/bin/bash  
[root@beiyong2 tmp]# mkdir project         #在 /tmp 目录中创建新目录 /project
[root@beiyong2 tmp]# groupadd developteam     #添加 developteam 用户组
[root@beiyong2 tmp]# chown -R :developteam /tmp/project      #将 /tmp/project 目录的属组改为 developteam
[root@beiyong2 tmp]# ls -ld project
drwxr-xr-x. 2 root developteam 4096 7月   9 02:15 project
[root@beiyong2 tmp]# usermod -a -G developteam user1    #分别将三个用户的附加组改为 developteam
[root@beiyong2 tmp]# usermod -a -G developteam hadoop
[root@beiyong2 tmp]# usermod -a -G developteam hbase
[root@beiyong2 project]# ls -ld     #查看 project 目录的权限,属组没有写权限,则添加
drwxr-xr-x. 2 root developteam 4096 7月   9 02:15 .
[root@beiyong2 project]# chmod g+w /tmp/project   
[root@beiyong2 project]# ls -ld
drwxrwxr-x. 2 root developteam 4096 7月   9 02:15 .
[root@beiyong2 project]# ll #分别用三个账号在 /tmp/project 目录中创建文件( a.* ),没有权限编辑其他人的文件
-rw-rw-r--. 1 hadoop hadoop 0 7月   9 02:33 a.hadoop
-rw-rw-r--. 1 hbase  hbase  0 7月   9 02:34 a.hbase
-rw-rw-r--. 1 user1  user1  0 7月   9 02:33 a.user1
[root@beiyong2 ~]# chmod g+s /tmp/project  #给 /tmp/project 目录添加 SGID 权限
[root@beiyong2 ~]# ls -ld /tmp/project
drwxrwsr-x. 2 root developteam 4096 7月   9 02:34 /tmp/project
[root@beiyong2 project]# ll #添加 SGID 权限后,用三个用户分别在 /tmp/project 目录下创建文件 ( b.* )
总用量 0
-rw-rw-r--. 1 hadoop hadoop      0 7月   9 02:33 a.hadoop
-rw-rw-r--. 1 hbase  hbase       0 7月   9 02:34 a.hbase
-rw-rw-r--. 1 user1  user1       0 7月   9 02:33 a.user1
-rw-rw-r--. 1 hadoop developteam 0 7月   9 02:37 b.hadoop
-rw-rw-r--. 1 hbase  developteam 0 7月   9 02:37 b.hbase
-rw-rw-r--. 1 user1  developteam 0 7月   9 02:37 b.user1

三个用户创建的文件,属组均为developteam,故可以互相编辑删除对方文件

Sticky : 实例测试   同一目录下用户可以创建文件并互相修改,但不能删除对方的文件

[root@beiyong2 project]# chmod o+t /tmp/project   #给 /tmp/project 添加 Sticky 权限,(原有执行权限 t , 否则 T)
[root@beiyong2 project]# ls -ld
drwxrwsr-t. 2 root developteam 4096 7月   9 02:42 .
[hadoop@beiyong2 project]$ rm -rf a.hbase  #用 hadoop 用户身份去删除 hbase 用户的文件,删除失败(只能删除自己的文件目录)
rm: 无法删除"a.hbase": 不允许的操作

完毕~~~


网站题目:特殊权限-SUID,SGID,Sticky学习笔记
网页地址:http://azwzsj.com/article/ihehpp.html