SGID权限测试-------linux

本文介绍了如何在Linux中进行SGID权限测试,通过详细步骤展示了如何复制mkdir命令,添加SGID权限,以及在不同场景下创建目录和文件,观察SGID如何影响新创建目录的归属组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SGID权限测试
 问题

  1. 将mkdir命令程序复制为/bin/mymd2,为其添加SGID权限,并完成下列操作。
  2. 以用户lisi登入,使用mkdir创建子目录snew01、使用mymd2创建子目录snew02,查看子目录snew01、snew02的权限及归属。
  3. 创建/nsdpublic目录,将属组改为tarena。
  4. 新建子目录nsd01、子文件test01.txt,查看两者的权限及归属。
  5. 为此目录添加SGID权限,再新建子目录nsd02、子文件test02.txt。
  6. 查看上述子目录及文件的权限及归属。
     方案
    SGID是Linux特殊权限的一种,其作用主要体现如下:
    1)能够传递可执行程序所属组的身份及具备所属组的权限。
    2) 在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份。
    注意事项:对可执行的程序/目录有效、可执行程序所属组必须具备可执行权限、显示占用的是所属组的x位置。
     步骤
    实现此案例需要按照如下步骤进行。
    步骤一:将mkdir命令程序复制为/bin/mymd2,为其添加SGID权限
    命令操作如下所示:
    [root@localhost ~]# which mkdir //利用which查看mkdir命令的绝对路径
    /bin/mkdir
    [root@localhost ~]# cp /bin/mkdir /bin/mymd2 //复制并改名
    [root@localhost ~]# ls -l /bin/mymd2 //查看是否生成mymd2
    -rwxr-xr-x. 1 root root 49384 2月 27 11:06 /bin/mymd2
    [root@localhost ~]# chmod g+s /bin/mymd2 //添加SGID权限
    [root@localhost ~]# ls -l /bin/mymd2 //查看是否设置成功
    -rwxr-sr-x. 1 root root 49384 2月 27 11:06 /bin/mymd2
    步骤二:以用户lisi登入,使用mkdir创建子目录snew01、使用mymd2创建子目录snew02,查看子目录snew01、snew02的权限及归属
    命令操作如下所示:
    [root@localhost ~]# id lisi //查看lisi是否存在
    id: lisi:无此用户
    [root@localhost ~]# useradd lisi //创建用户
    [root@localhost ~]# su – lisi //切换用户身份
    [lisi@localhost ~]$ ls -l /bin/mkdir //查看mkdir命令权限,没有SGID
    -rwxr-xr-x. 1 root root 49384 10月 17 2013 /bin/mkdir
    [lisi@localhost ~]$ mkdir snew01 //创建测试目录snew01
    [lisi@localhost ~]$ ls -ld snew01/ //查看权限及归属关系,属主与属组均是lisi
    drwxrwxr-x. 2 lisi lisi 4096 2月 27 11:16 snew01/
    [lisi@localhost ~]$ ls -l /bin/mymd2 //查看mkdir命令权限,具备SGID权限
    -rwxr-sr-x. 1 root root 49384 2月 27 11:06 /bin/mymd2
    [lisi@localhost ~]$ mymd2 snew02 //创建测试目录snew02
    [lisi@localhost ~]$ ls -ld snew02/ //查看权限及归属关系,属组继承为root组
    drwxrwxr-x. 2 lisi root 4096 2月 27 11:20 snew02/
    步骤三:创建/nsdpublic目录,将属组改为tarena
    命令操作如下所示:
    [root@localhost ~]# mkdir /nsdpublic //创建测试目录
    [root@localhost ~]# ls -ld /nsdpublic/ //查看权限及归属关系
    drwxr-xr-x. 2 root root 4096 2月 27 11:27 /nsdpublic/
    [root@localhost ~]# grep tarena /etc/group //查看tarena组是否存在
    tarena❌502:gelin02,gelin01
    [root@localhost ~]# chown :tarena /nsdpublic/ //更改目录所属组为tarena组
    [root@localhost ~]# ls -ld /nsdpublic/ //查看是否修改成功
    drwxr-xr-x. 2 root tarena 4096 2月 27 11:27 /nsdpublic/
    步骤四:新建子目录nsd01、子文件test01.txt,查看两者的权限及归属
    命令操作如下所示:
    [root@localhost ~]# mkdir /nsdpublic/nsd01 //在nsdpublic目录下创建nsd01目录
    [root@localhost ~]# touch /nsdpublic/test01.txt //在nsdpublic目录下创建测试文件
    [root@localhost ~]# ls -l /nsdpublic/ //查看归属关系其属组均为root组
    总用量 4
    drwxr-xr-x. 2 root root 4096 2月 27 11:49 nsd01
    -rw-r–r--. 1 root root 0 2月 27 11:50 test01.txt
    步骤五:为此目录添加SGID权限,再新建子目录nsd02、子文件test02.txt
    命令操作如下所示:
    [root@localhost ~]# chmod g+s /nsdpublic/ //为nsdpublic添加SGID权限
    [root@localhost ~]# ls -ld /nsdpublic/ //查看设置成功
    drwxr-sr-x. 3 root tarena 4096 2月 27 11:50 /nsdpublic/
    [root@localhost ~]# mkdir /nsdpublic/nsd02
    [root@localhost ~]# touch /nsdpublic/test02.txt
    [root@localhost ~]# ls -l /nsdpublic/
    总用量 8
    drwxr-xr-x. 2 root root 4096 2月 27 11:49 nsd01
    drwxr-sr-x. 2 root tarena 4096 2月 27 11:57 nsd02
    -rw-r–r--. 1 root root 0 2月 27 11:50 test01.txt
    -rw-r–r--. 1 root tarena 0 2月 27 11:57 test02.txt
    分析: 可以看到当nsdpublic目录具备SGID权限时,之前创建的nsd01与test01.txt其所属组均为发生变化,但新创建的nsd02与test02.txt两者都继承的所属组身份及权限,其中还需注意的一点是我们也可以看到nsd02子目录也同样继承了SGID权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值