理解基本權限以及特殊權限:Suid 、Sgid、Sticky以及acl
在Linux中特殊權限是什么?為什么要設定特殊權限?回答這個問題前,我們不妨思考為什么要設定權限?
大家知道Linux中一切皆文件。不論你是什么,在linux系統中都會被當做一個文件來看待。無論你是文本或目錄,硬件或軟件,圖片或視頻等等,統統都被當做文件來看待。所以,在linux中,文件的重要性不言而喻。那么如何更合理的管理好文件呢?文件的權限管理是很重要的一環,所以接下來我將介紹文件的基本權限以及特殊權限。
基本文件權限
對于文件的權限linux系統中是通過讀(r)寫(w)執行(x)來進行管理的。
權限 | 文件 | 目錄 |
---|---|---|
r | 可以打開和閱讀文件的內容 | 可以用ls查看此目錄中的文件,但不能閱讀目錄內的文件 |
w | 可以修改文件內容 | 可以在目錄中刪除或添加文件以及目錄 |
x | 可以運行一個執行文件 | 可以使用cd進入到這個目錄 |
介紹完了rwx權限在文件以及目錄中的意義,接下來介紹賦予權限的方法。在這里我采用的八進制賦權的方法,權限對應關系如圖。
通過這種對應關系,我們可以給文件或目錄賦權。
例子 1.1
~]# touch permission.txt ~]# ll permission.txt -rw-r--r--. 1 root root 0 Apr 8 14:40 permission.txt ~]# chmod 755 permission.txt ~]# ll permission.txt -rwxr-xr-x. 1 root root 0 Apr 8 14:40 permission.txt
講解: 1.創建一個文件 2.查看文件權限為:-rw-r--r--,對應權限 屬主:讀寫;屬組:讀;其他者:讀 3.接下來我們使用chmod更改文件的權限 4.可以看到文件的權限為:-rwxr-xr-x 對應權限 屬主:讀寫執行;屬組:讀執行;其他者:讀執行 note:一般我們設置文件的權限為644,不輕易給文件賦予X權限,因為執行權限對于文件來說十分重要
2.特殊權限 講解完了基本權限,接下來該講講特殊權限。當有些權限問題,基本權限解決不了,那么就需要特殊權限來解決了。這就是特殊權限存在的意義。
2.1 三大特殊權限分別對于文件以及目錄的作用。
1.設置SUID的意義:讓其他用戶具有文件所有者的執行權限。 2.設置SGID的意義:讓其他用戶可以在設置SGID的目錄中可以隨意的修改文件。生產環境中常為開發人員用戶組設置此權限。 3.設置Sticky的意義:只有文件的屬主可以刪除文件。生產環境中常為開發人員用戶組設置此權限。
2.2如何判斷文件或者目錄設置了特殊權限
通過上圖我們可以知道,當對用戶設置了SUID,用戶原本執行權限位置會被S或s替換掉。屬主有執行權限,替換為s;屬主沒有執行權限時,則替換為大S。大S在這里是沒有任何作用,小s才會讓其他用戶擁有執行權限。同理,SGID,Sticky也是相同的道理。
~]# ls -ld /usr/bin/passwd /tmp drwxrwxrwt. 16 root root 4096 Apr 8 15:03 /tmp -rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd 以上是系統對文件以及目錄設置的特殊權限。 passwd文件設置了SUID,作用是除root用戶以外的用戶可以修改自身的用戶密碼; tmp目錄設置了sticky,其作用是使進入tmp目錄內的用戶可以隨意修改 文件內容,但是不能刪除其他用戶創建的文件。
2.3 設置Suid、Sgid、Sticky
設置特殊權限很簡單,可以參考以下命令。
3.1 設置suid/取消suid chmod u+s file chmod u-s file 3.2 設置sgid/取消sgid chmod g+s dir chmod g-s dir 3.3 設置sticky chmod o+t dir chmod o-t dir
2.4acl權限
除了文件的所有者,所屬組和其他人,可以對通過acl權限實現對更對的用戶設置權限。
獲取acl權限信息 命令:getfacl dir/file tmp]# mkdir acltest tmp]# getfacl acltest/ # file: acltest/ # owner: root # group: root user::rwx group::r-x other::r-x設置acl權限 命令:setfacl -m u/g:name:permission dir/file tmp]# setfacl -m u:michael:rwx acltest/ tmp]# getfacl acltest/ # file: acltest/ # owner: root # group: root user::rwx user:michael:rwx group::r-x mask::rwx other::r-x 以上通過setfacl命令,michael用戶對/tmp/acltest目錄已經擁有了rwx權限。這就是acl權限的作用,大家可以舉一反三。
原創文章,作者:PowerMichael,如若轉載,請注明出處:http://www.www58058.com/72796
總結了linux 中的一些特殊權限,寫容總結的很不錯,排版也很好,贊!