linux基礎--特殊權限及文件系統訪問控制列表

特殊權限

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都有寫的權限,並且都可以編輯另外的用戶創建的文件,但是不可刪除別人創建的文件。

[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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章