linux使用組ID SGID 共享目錄檔案

2022-05-08 17:06:12 字數 2186 閱讀 4634

假如你有這樣乙個需求,乙個小組內很多成員共同研究乙個專案,為了這個專案我們需要分配乙個具體的目錄.所有成員都擁有該目錄的使用許可權,可以互相操作成員的檔案及內容.而且不允許其他人檢視.

現在開始操作:

建立使用者組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組了

接下來開始建立共同工作的目錄:/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/ # 可以看到已經修改成功

從許可權來看,組內成員均支援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檔案.

由以上結果可知,如果只是使用一般的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

再來測試一下

[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)許可權

一般常用情景是多個使用者為同乙個使用者組,並共同擁有目錄的使用權.

Linux 建立共享物件,共享庫並安裝使用共享庫

linux的共享物件與window下的動態鏈結檔案是乙個等價的概念,但是不同的作業系統對共享物件的儲存方式不同。而linux 的共享庫也是共享物件的形式,是將多個原始檔編譯為乙個共享物件的方式,這個共享物件就是共享庫,現在共享物件與共享庫的概念已經不再著重區分。假設現有原始檔 a.c 將其編譯為共享...

解析多片LED共陰共碼管的使用

補圖 當我們用到多片8位led共陰數碼管的時候,會涉及到 段選 和 位選 在這裡,有一點需要注意,公共端 com gnd 就是位選線 所以低電平有效 a b c d e f g dp就是段選線。當我們利用p0口控制段選,由於io口的輸出電流很弱,不到1ma,因此,需要加上上拉電阻。當我們利用p0口控...

Linux命令第二部分(使用者和組操作)(共15個)

1.useradd 命令作用 在系統中建立新使用者 命令語法 useradd 選項 引數 常用選項 g 指定使用者的所屬群組 g 指定使用者的附 組 u 指定使用者的id 引數說明 需要建立的使用者的使用者名稱 命令示例 建立乙個新使用者ruan,並且指定他的id為123 useradd ruan ...