Linux文件權限的總結詳解
阿新 • • 發佈:2018-07-27
閱讀 ask 奇數 oot 瀏覽目錄 -- 不能 拒絕 總結 權限總結:
對普通文件的:
r:read 可讀,表示具有讀取、閱讀文件內容的權限
w:write可寫,表示具有新增、修改文件內容的權限(是否可以刪除看上級目錄的權限)
1) 如果沒有r,那麽vim會提示無法編輯(可強制編輯,echo可以重定向編輯或追加)
2) 如果沒有r,那麽執行他也會提示權限不足
3) 刪除文件(修改文件名等)的權限是受父目錄的權限限制的,和目錄本身權限無關
x:execute 執行權限,
對於目錄的:
r:表示具有瀏覽目錄下面及子目錄的權限,即ls 和dir 1) 如果沒有x權限,不能進入到目錄裏面 2) 如果沒有x權限,ls列表是可以看到所有文件名,但是會提示無權訪問目錄下的文件 3) 如果ls –l列表,所有的屬性會帶有問號,也會提示無權訪問目錄下的文件,但是可以看到所有文件名。 w:具有增加、刪除和修改目錄內文件名(一般指文件名)的權限(需要x權限配合) x:表示具有進入目錄的權限,沒有r權限能進去但是不能修改,創建和刪除的功能。
[test@zsf tmp]$ ll -d zsf/ #查看這個目錄的權限 drwxr-xr-- 2 oldgirl incahome 4096 Mar 22 23:17 zsf/ [test@zsf tmp]$ ls zsf ls: cannot access zsf/test.sh: Permission denied #提示權限被拒絕 test.sh #但是顯示裏面的文件內容 [test@zsf tmp]$ cd zsf/ #切換目錄不成功,沒有權限 -bash: cd: zsf/: Permission denied [test@zsf tmp]$ ll zsf #對應上面的3解釋 ls: cannot access zsf/test.sh: Permission denied total 0 -????????? ? ? ? ? ? test.sh
文件的默認屬性由umask來決定:
臨時設置umask值:umask 0022
目錄默認的總權限為0777,然後實際權限為0777-umask==實際權限
文件默認的總權限為0666,然後實際權限為0666-umask(當碰到奇數的時候在奇數位加上1)==實際權限
特殊權限:
sUID:set uid數字代號“4”在一個程序或命令上添加setuid以後(u+s),這樣屬主就有了s權限,意味著任何用戶在執行此程序時,其進程的屬組不再是發起者本人,而是屬主。最典型的例子passwd命令; [root@zsf tmp]# ll -d `which passwd` -rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd 普通用戶不具備對/etc/passwd文件的修改權限 [root@zsf tmp]# ll -d /etc/shadow -rw-r--r-- 1 root root 1057 Mar 16 21:32 /etc/shadow,但是普通用戶卻能修改自己的密碼。是因為passwd有setuid權限,當他執行passwd命令時就相當於root在執行,在對shadow修改文件。 當user權限本身具有x權限的時候,s為小寫,當不具備x權限的時候S為大寫 sgid:set gid 數字代號“2”,在一個程序或命令上添加set gid以後(g+s),這樣屬組就有了s權限,意味著任何用戶在執行此程序時,其進程的屬組不再是發起者本人的屬組,而是文件屬組。給目錄設置Set gid權限,任何用戶在該目錄下創建的文件,則該文件屬組都和目錄的屬組一致。 當group權限本身具有x權限的時候,s為小寫,當不具備x權限的時候S為大寫 t:sticky 數字代表1,附加在other的權限上,當設置此權限的之後,每個人的文件或目錄只能有自己本身刪除。 文件的權限可以通過chmod指令來修改,支持運算表達式。
Linux文件權限的總結詳解