zoukankan      html  css  js  c++  java
  • linux使用组ID(SGID)共享目录文件

    假如你有这样一个需求,一个小组内很多成员共同研究一个项目,为了这个项目我们需要分配一个具体的目录.所有成员都拥有该目录的使用权限,可以互相操作成员的文件及内容.而且不允许其他人查看.

    现在开始操作:

    1. 创建用户组project_test和用户alex和bob,并将他们加入到project_test组中.
    [root@centos8 ~]# groupadd project_test
    [root@centos8 ~]# useradd -G project_test alex
    [root@centos8 ~]# useradd -G project_test bob
    [root@centos8 ~]# id alex;id bob
    uid=1004(alex) gid=1006(alex) groups=1006(alex),1005(project_test)  # 确实已经加入project_test组了
    uid=1005(bob) gid=1007(bob) groups=1007(bob),1005(project_test)     # 确实已经加入project_test组了
    
    1. 接下来开始创建共同工作的目录:/mnt/project
    [root@centos8 ~]# mkdir /mnt/project
    [root@centos8 ~]# ll -d /mnt/project/
    drwxr-xr-x. 2 root root 6 May 28 14:38 /mnt/project/
    
    因为是root用户创建的,默认用户组为root,且权限为755,现在将其修改为project_test组,权限为770
    
    [root@centos8 ~]# chgrp project_test /mnt/project/
    [root@centos8 ~]# chmod 770 /mnt/project/
    [root@centos8 ~]# ll -d /mnt/project/
    drwxrwx---. 2 root project_test 6 May 28 14:38 /mnt/project/        # 可以看到已经修改成功
    
    1. 从权限来看,组内成员均支持project_test组,似乎已经完成了我们的要求,那么来测试一下
    [root@centos8 ~]# su - alex
    [alex@centos8 ~]$ cd /mnt/project/
    [alex@centos8 project]$ touch test1
    
    [alex@centos8 project]$ ll test1
    -rw-rw-r--. 1 alex alex 0 May 28 14:54 test1  
    
    好像有点问题,用户组居然是alex,对于test1这个文件来说,,组内其他的人员权限只有r,无法操作和修改test1文件.
    
    1. 由以上结果可知,如果只是使用一般的rwx权限,无法满足我们的需求.所以这里要使用到组ID(SGID)权限
    [root@centos8 ~]# chmod g+s /mnt/project/ 或者 chmod 2770 /mnt/project/    # 对目录添加组ID(SGID)权限  
    [root@centos8 ~]# ll -d /mnt/project/
    drwxrws---. 2 root project_test 19 May 28 14:54 /mnt/project/  # 可以看到用户组权限的r变为了s
    
    1. 再来测试一下
    [root@centos8 ~]# su - alex
    Last login: Thu May 28 14:54:20 CST 2020 on pts/0
    [alex@centos8 ~]$ cd /mnt/project/
    [alex@centos8 project]$ touch test2
    [alex@centos8 project]$ ll test2
    -rw-rw-r--. 1 alex project_test 0 May 28 15:15 test2
    
    可以发现,现在新建的文件用户组是project_test,这样一来,组内成员都可以互相修改成员的文件了.
    

    项目开发时候,经常会设置组ID(SGID)权限

    一般常用情景是多个用户为同一个用户组,并共同拥有目录的使用权.

  • 相关阅读:
    常用SQL语句
    一个很准的心理测试
    视图,存储实现行列转换
    『原创』+『转载』配置模拟器网络环境(访问局域网)Step by Step!
    『原创』老范的XML文档编辑程序——不是一般的山寨!(原创附程序)
    『原创』+『参考』基于PPC的图像对比程序——使用直方图度量
    『原创』.Net CF下ListView的数据绑定
    『原创』+『参考』使用C#在PPC的Today界面上的任务栏加入应用程序图标
    关于RDA远程访问数据库的一个例子(亲手完成,不容易啊)
    『原创』+『参考』亲手实验:使用C#在PPC中播放声音
  • 原文地址:https://www.cnblogs.com/wuvikr/p/13630895.html
Copyright © 2011-2022 走看看