先記下Linux下的權限能夠分爲html
常見的linux
r(Read,讀取):對文件,讀取文件內容的權限;目錄來講,具備瀏覽目 錄的權限。權限值=4測試
w(Write,寫入):對文件而言,具備新增、修改文件內容的權限;對目錄來講,具備刪除、移動目錄內文件的權限。權限值=2ui
x(eXecute,執行):對文件而言,具備執行文件的權限;對目錄了來講該用戶具備進入目錄的權限。權限值=1spa
特殊的.net
s,t,i,aunix
Linux是經過9個權限位來控制文件,目錄權限的、分別是 全部者3位,所屬分組3位,其它(用戶組,用戶)3位、htm
文件默認權限基準值 rw- rw- rw- ,全部者=讀|寫,所屬分組=讀寫,其餘(其餘用戶,用戶組)=讀寫、blog
目錄默認權限基準值 rwx rwx rwx ,全部者=讀|刪除子目錄或文件|進入,所屬分組=讀|刪除子目錄或文件|進入,其餘(其餘用戶,用戶組)=讀|刪除子目錄或文件|進入、get
在建立文件,目錄的時候,linux會經過上面的權限減去系統權限「補碼」umask,用 umask命令能夠查看到具體
過 umask 查看,好比:0002;,umask -S能夠查看own,group,others須要減去的具體權限是什麼,好比:u=rwx,g=rwx,o=rx)
權限值計算,有教科書上講。按二進制 AND 和 NOT來計算,我的感受能理解,但不是最能理解的方式。
甚至有些BBS論壇用 666 - umask 來算 注意:這個個是錯誤滴....
舉個栗子,假如umask=003,按照這種計算方式。
文件權限 = 666 - 003 = 663 = rw- rw- -wx,明明文件默認的other都沒有可執行權限x嘛。這兒還給算出來了個x執行權限。因此,這是絕對錯誤。切記咯、)
公式:令r,w,x 等於 一、符號「-」等於0,將文件/目錄權限基準值與umask轉換爲 0,1 這種格式,將文件/目錄權限基準值按位對應相減 umask,若位的相減少於等於0,表示此位無權限,等於1表示此位有對應權限。
經過上面的公式,咱們能夠先獲得(下面稱爲文件轉換值,目錄轉換值)
文件的權限基準值(rw- rw- rw- ) 轉換爲 110 110 110,對照圖以下
目錄的權限基準值(rwx rwx rwx) 轉換爲 111 111 111,對照圖以下
注意:權限位是按 owner,group,others 的 rwx ,rwx,rwx 這個順序來的,不能變哦~
也就是說的,是按照 全部者的r,w,x;所屬分組的r,w,x;其餘組/用戶的r,w,x這個順序來的~
舉個栗子
問題:某用戶umask = 002;請問,該用戶建立的文件/目錄的默認權限分別是什麼?
解答:
首先,將 umask = --- --- -w-,按照公式轉換爲 000 000 010
那麼文件的默認權限值公式2,按位相減,計算以下步驟以下。
文件的默認權限值 = 文件默認權限基準值 (rw- rw- rw-) 減去 UMASK權限位值 = 文件轉換值 減去 UMASK轉換值
= rw- rw- rw- 減 --- --- -w-
= 110 110 110 - 000 000 010
轉換下
110 110 110
— 000 000 010
-------------------------------------------------------
= 110 110 100 —> 轉爲權限位就是 rw- rw- r--
目錄的默認權限值 = 目錄默認權限基準值 (rwx rwx rwx) 減去 UMASK權限位值 = 目錄轉換值 減去 UMASK轉換值
= rwx rwx rwx 減 --- --- -w-
= 111 111 111 - 000 000 010
轉換下
111 111 111
— 000 000 010
-------------------------------------------------------
= 111 111 101 —> 轉爲權限位就是 rwx rwx r-x
其實上面的公式有點點繞了。總結爲一句話就是:「設rwx爲1,-爲0,按位xor,對應位值等於0,此位對應無權限,等於1,有權限;或按位相減,對應位值小於,等於0,此位對應無權限,等於1,有權限」
Okay,下面咱們來測試下結果~
資料參考:
鳥哥的Linux私房菜(基礎篇,第三版:182頁~)
Linux中的幾種權限:http://blog.chinaunix.net/uid-16728139-id-3315846.html