十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
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": 不允许的操作
完毕~~~