SUID权限测试
1)将mkdir命令复制为/bin/mymd1,添加SUID
2)以用户zhangsan登入,做下列测试:在其家目录下分别使用mkdir、mymd1命令尝试创建snew01、snew02
3)查看snew01、snew02权限及归属关系
SUID是Linux特殊权限的一种,能够用来传递可执行程序所有者的身份及具备所有者的权限。
注意事项:只针对可执行程序文件、可执行程序所有者必须具备可执行权限、显示占用的是所有者的x位置。
步骤一:将mkdir命令复制为/bin/mymd1,添加SUID
分析: 要想复制mkdir命令程序并改名,首先得找到该命令的绝对路径。可以利用which命令搜索。
[root@localhost ~]# which mkdir //利用which找到mkdir命令的绝对路径
/bin/mkdir
[root@localhost ~]# cp /bin/mkdir /bin/mymd1 //复制并改名
[root@localhost ~]# ls -l /bin/mymd1 //查看是否生成mymd1
-rwxr-xr-x. 1 root root 49384 2月 27 10:34 /bin/mymd1
[root@localhost ~]# chmod u+s /bin/mymd1 //添加SUID权限
[root@localhost ~]# ls -l /bin/mymd1 //查看是否添加成功
-rwsr-xr-x. 1 root root 49384 2月 27 10:34 /bin/mymd1
步骤二:以用户zhangsan登入,做下列测试:在其家目录下分别使用mkdir、mymd1命令尝试创建snew01、snew02
[root@localhost ~]# id zhangsan //查看zhangsan用户是否存在
uid=500(zhangsan) gid=500(zhangsan) 组=500(zhangsan)
[root@localhost ~]# su – zhangsan //切换用户身份测试
[zhangsan@localhost ~]$ ls -l /bin/mkdir //查看mkdir命令程序权限的划分
-rwxr-xr-x. 1 root root 49384 10月 17 2013 /bin/mkdir //可以看到没有SUID
[zhangsan@localhost ~]$ mkdir snew01 //创建测试目录snew01
[zhangsan@localhost ~]$ ls -ld snew01/ //查看snew01权限及归属关系
drwxrwxr-x. 2 zhangsan zhangsan 4096 2月 27 10:40 snew01/ //属主与属组均是zhangsan
[zhangsan@localhost ~]$ ls -l /bin/mymd1 //查看mymd1命令程序权限的划分
-rwsr-xr-x. 1 root root 49384 2月 27 10:34 /bin/mymd1 //可以看到具备SUID
[zhangsan@localhost ~]$ mymd1 snew02 //创建测试目录snew02
[zhangsan@localhost ~]$ ls -ld snew02 //查看snew02权限及归属关系
drwxrwxr-x. 2 root zhangsan 4096 2月 27 10:47 snew02
分析: 可以看到归属关系中所有者发生变化,继承了mymd1命令程序的所有者root。