之前我们简单说了下 SUID,特殊权限除了 SUID 外,还有两个,今天我们聊一下 SGID。我们通过一个实验,理解一下。
执行效果
首先我们看一下实验的效果:
实验解读
首先我们在根中创建目录 cjk,然后查看一下它的权限,其它用户没有写入权限,所以我们添加一个:
mkdir /cjk
ll / | grep cjk
chmod o+w /cjk
然后在/cjk 目录中创建一个文件 sdf,通过 ls- l 可看到所有者和所有组都是 root:
touch /cjk/sdf
ll /cjk
切换用户到 penn 普通用户,同样在/cjk 目录中创建一个文件 fda,通过 ll 可看到所有者和所有组都是 penn:
su - penn
touch /cjk/fda
ll /cjk
我们使用 root 用户修改下/cjk 目录的权限,添加上 SGID:
su - root
chmod g+s /cjk
我们再切换到普通用户,在/cjk 目录中创建文件 lzll,通过 ll 查看所有者是 penn,但所有组是 root:
su - penn
touch /cjk/lzll
ll /cjk
最后我们简单总结一下 SGID 的作用:SGID 是针对目录设置,在给目录添加 SGID 的权限之后,其它用户在此目录中创建的文件,其所有组会被替换成此目录的所有组:
chmod g+s cjk
#添加
chmod g-s cjk
#删除
条评论