linux基礎 特殊許可權及檔案系統訪問控制列表

2021-09-20 15:13:14 字數 3500 閱讀 8565

特殊許可權

suid:執行某程式時,相應程序的屬主是程式檔案自身的屬主,而不是啟動使用者。

sgid:執行某程式時,相應程序的屬組是程式檔案自身的屬組,而不是啟動使用者所屬的基本組。

sticky:在乙個公共目錄,每個使用者都可以建立檔案,能刪除自己的檔案,但不能刪除別人的檔案

修改檔案的特殊許可權

chmod u+s file:給檔案新增suid許可權

chmod u-s file:給檔案刪除suid許可權

chmod g+s file:給檔案新增sgid許可權

chmod g-s file:給檔案刪除sgid許可權

chmod o+t dir:給目錄增加sticky許可權

chmod o-t dir:給目錄刪除sticky許可權

例子:chmod 1755 /back/test:帶sticky許可權的755檔案

chmod 2755 /back/test:帶sgid許可權的755檔案

chmod 3755 /back/test:帶sticky和sgid許可權的755檔案

chmod 4755 /back/test:帶sgid和suid許可權的755檔案

chmod 5755 /back/test:帶sticky和suid許可權的755檔案

chmod 6755 /back/test:帶sticky和suid以及sgid許可權的755檔案

因此umask的0022中第一位0就代表的是特殊許可權。

練習:建立乙個目錄,讓user01,user02,user03都有寫的許可權,並且都可以編輯另外的使用者建立的檔案,但是不可刪除別人建立的檔案。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

[root@liang-study ~]# mkdir /home/project   #建立公用目錄

[root@liang-study ~]# useradd user01    #建立使用者

[root@liang-study ~]# useradd user02

[root@liang-study ~]# useradd user03

[root@liang-study ~]# groupadd mygroup   #建立附加組

[root@liang-study ~]# usermod -a -g mygroup user01   #將使用者新增至附加組

[root@liang-study ~]# usermod -a -g mygroup user02

[root@liang-study ~]# usermod -a -g mygroup user03

[root@liang-study ~]# id user01    #驗證新增是否成功

uid=5001(user01) gid=5001(user01)groups=5001(user01),5004(mygroup)

[root@liang-study ~]# chown :mygroup /home/project/   #修改目錄所屬組為附加組

[root@liang-study home]# chmod g+s /home/project/    #給公用目錄新增sgid許可權

[user02@liang-study project]$ ll#使用user01-03建立的檔案的屬組就是目錄的所屬組mygroup

total 4

-rw-rw-r-- 1 user01 mygroup 22 dec 22 11:26 user01.txt

-rw-rw-r-- 1 user02 mygroup  0 dec 22 11:26 user02.txt

#此時,user01登入此目錄就可以修改其他檔案,也可以刪除。

[root@liang-study project]# chmod o+t /home/project/ -r    #新增sticky許可權

[root@liang-study home]# ls -ld /home/project/

drwxrwsr-t 2 root mygroup 4096 dec 22 11:26/home/project/

#至此,完成實驗

facl:file system access control list

利用檔案擴充套件屬性儲存額外的訪問控制許可權,acl為現有許可權機制的延伸,在現有機制的三個基本設定(owner、group、other)的基礎上加入了對某指定使用者或群組的訪問許可權設定。

facl可以對某個檔案設定該檔案具體的某些使用者的許可權,意思就是通過facl可以對乙個檔案許可權做擴充套件,可以不同的使用者對某個檔案有不同的許可權。如讓tom使用者對jerry建立的檔案有讀寫許可權。

setfacl

-m:設定額外訪問控制列表

u:uid:perm file  設定指定使用者對file有指定許可權

d:uid:perm dir  設定指定使用者對目錄的指定許可權,預設在此目錄建立的檔案都會繼承facl

g:gid:perm file  設定指定組對file有指定許可權

例:setfacl -m u:hoodop:rw /tmp/test.txt  新增hoodop使用者對test.txt擁有讀寫許可權。

-x:取消額外訪問控制列表

--mask:設定預設mask許可權

getfacl file:獲取facl許可權

新增facl許可權後的許可權應用順序

owner-->facl中的user-->group-->facl中的group-->other

Linux 檔案許可權及特殊許可權管理

第一位指檔案型別,常見檔案型別有 普通檔案 d 目錄檔案 b 塊裝置檔案 block c 字元裝置檔案 character p 命令管道檔案 pipe s 套接字檔案 socket 後面的9位指檔案許可權 每三位一組,前三位是檔案所有者 u 中間三位指檔案所屬組 g 後三位指其他使用者 o 檔案的大...

Linux檔案特殊許可權

linux中檔案除了r w x這三個讀 寫 執行的許可權還有特殊許可權 s t suid許可權 當s這個標誌出現在檔案所有者的x許可權上時 如 rwsr xr x 則被稱為set uid,簡稱suid許可權。suid限制 1 suid許可權僅對二進位制程式 可執行程式 有效。2 執行者對於該程式需要...

Linux檔案特殊許可權

檔案特殊許可權set uid set gid sticky bit 1 set uid 該許可權針對二進位制可執行檔案,使檔案在執行階段具有檔案所有者的許可權。比如 passwd具有該許可權 chmod u s filename filename必須是二進位制檔案 2 set gid 改許可權針對目...