首页 > 系统服务 > 详细

Linux使用SGID实现某个目录下文件对目录所属组的用户共享

时间:2020-05-13 23:54:02      阅读:100      评论:0      收藏:0      [点我收藏+]

要共享的用户所属组设置为zp_group

添加这个用户组:

groupadd zp_group

 技术分享图片

 

 

要共享的目录名设置为zp_group_publicDir, 暂时放在/tmp目录下:

cd /tmp

mkdir -m 2770 zp_group_publicDir  #数字2是为了给zp_group_publicDir目录设置SGID权限

chgrp zp_group zp_group_publicDir #将zp_group_publicDir目录所属组设置为 zp_group组

ls -ld ./zp_group_publicDir

技术分享图片

 

可以看到zp_group_publicDir目录有了SGID并属于 zp_group群组, 到这里就成功了, 

只要某用户所属组包含zp_group组就可以共享zp_group_publicDir目录了.

 

接下来进行测试:

新建两个用户user1和user2; user1添加到zp_group组, user2暂时不添加:

useradd -G zp_group user1

useradd user2

查看user1和user2的信息:

id user1 && id user2

 技术分享图片

 

可以看到user1含有zp_group组, user2不含有zp_group组.

 

切换到user1用户并进入zp_group_publicDir, 用vim创建文件 a.txt 并写入内容”a.txt file”, 然后用cat查看文件内容, 用ll(ls -l的别名)显示文件信息, 命令如下:

su user1

cd zp_group_publicDir

vim a.txt

cat a.txt

ll

技术分享图片

 

由于zp_group_publicDir设置了SGID权限, 因此该目录下创建的文件默认的群组与该目录的群组一致, 都为zp_group;

然后切换到user2用户, 进入zp_group_publicDir目录报Permission denied表示权限不足:

 技术分享图片

 

因为zp_group_publicDir目录对other用户没有rwx权限, user2对于zp_group_publicDir目录属于other身份, 所以无法查看编辑与进入zp_group_publicDir目录;

然后切换到root用户把user2也加入到zp_group群组:

 技术分享图片

 

然后切换到user2用户, 进入zp_group_publicDir目录并创建b.txt文件:

 技术分享图片

 

现在user2也可以进入zp_group_publicDir目录了, 只要某用户所属组包含zp_group组就可以共享zp_group_publicDir目录, 并且在zp_group_publicDir目录下创建的文件也会自动属于zp_group组, 由此可见SGID对于项目开发来说是非常重要的.

Linux使用SGID实现某个目录下文件对目录所属组的用户共享

原文:https://www.cnblogs.com/zp106/p/12885372.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!