1. 程式人生 > >Linux檔案許可權總結

Linux檔案許可權總結

Linux檔案許可權基本概述:

1.基本許可權:可讀(r)    可寫(w)    可編輯(x)

2.特殊許可權:SUID      SGID       SBIT

3.隱藏許可權:通過[lsattr]檢視,[chattr]設定;由於檔案的隱藏許可權種類較多(13種),在此不作具體說明;可以通過[man chattr]來檢視各個隱藏許可權的具體意義(非常詳細);

需要強調的是,檔案的隱藏許可權只有在Ext2及其後續版本的檔案系統才生效(摘自鳥哥Linux教程基礎篇)

檔案許可權具體說明:

Linux的檔案許可權針對目錄及檔案,兩者之間有少許差異,具體見下表

可讀 可寫 可執行
SUID SGID SBIT
檔案 可以檢視目標檔案的內容;

可以編輯目標檔案;

單獨使用無效,需要配合[可讀]許可權(因為需要進入檔案編輯器修改檔案內容);

可以執行目標檔案;

對於shell指令碼,需要配合[可讀]許可權才可以正常執行;

對於二進位制檔案,僅需[可執行]許可權即可;

僅針對二進位制可執行檔案;

擁有SUID許可權的使用者執行程式時,程式在執行過程中會獲得程式擁有者的許可權支援;

僅針對二進位制可執行檔案;

擁有SGID許可權的使用者執行程式時,程式在執行過程中會獲得程式所屬群組的許可權支援;

不針對檔案;
目錄

可以檢視目錄下的檔案列表;

單獨使用只能檢視目錄下的檔名;

如要檢視詳細資訊,需要配合[可執行]許可權;

可以在目標目錄下進行[建立/刪除/移動]等操作;

單獨使用無效,需要配合[可執行]許可權;

可以將該目錄設定成工作目錄(cd {dir}); 不針對目錄;

使用者在該目錄下的有效群組會變成該目錄的所屬群組;

例:在該目錄下,建立的目錄或檔案的所屬群組為該目錄的所屬群組,而非檔案建立者的所屬群組;

另:建立的目錄也會具有SGID許可權;

只有使用者可以在該目錄下[刪除/移動]自己建立的[目錄/檔案];(超級使用者不受限制)

單獨使用無效,需要配合[可寫/可執行]許可權;

檔案許可權的表示法:

基本許可權:

1.數字表示法: 4 = 可讀      2 = 可寫      1 = 可執行

2.字元表示法: r-- = 可讀      -w- = 可寫      --x = 可執行

3.具體顯示:

3.1)基本許可權的"運算":

[

r-- = 4

-w- = 2

--x = 1

rw- = 4+2 = 6

-wx = 2+1 = 3

r-x = 4+1 = 5

rwx = 4+2+1 = 7

]

3.2)基本許可權的"分解":

[

rwxrwxrwx =

[rwx][rwx][rwx]

[擁有人][群組][其他人]

7777=

*777

特殊許可權擁有人群組其他人

]

------------------------------------------

特殊許可權:

1.數字表示法: 4 = SUID      2 = SGID      1 = SBIT

2.字元表示法: --s------      ------s---      --------t

3.具體顯示:

3.1)特殊許可權的"運算":

[

--s------ = 4

-----s--- = 2

--------t = 1

--s--s--- = 4+2 = 6

-----s--t = 2+1 = 3

--s-----t = 4+1 = 5

--s--s--t = 4+2+1 = 7

]

3.2)特殊許可權的"分解":

[

rwsrwsrwt =

rw[s]rw[s]rw[t]

[SUID][SGID][SBIT]

7777=

7***

特殊許可權基本許可權

]

預設檔案許可權(umask):

建立檔案和目錄時(touch或mkdir),系統都會為我們建立的東西預設一定的許可權;

例如:

預設情況下,以root建立檔案,獲得的許可權是 -rw-r--r--;

建立目錄,獲得的許可權是  drwxr-xr-x;

而控制這個預設許可權的就是umask;

以root執行[umask]會輸出:

[

0022

]

0022 = -----w--w-

預設許可權的計算:

檔案: (-rw-rw-rw-) - [umask] = (-rw-rw-rw-) - (-----w--w-) = -rw-r--r--

目錄: (drwxrwxrwx) - [umask] = (drwxrwxrwx) - (-----w--w-) = drwxr-xr-x

所以說,如果需要控制預設命令,只要設定umask即可;

設定umask:

[

umask {三位的檔案許可權數字}

]

檔案許可權的設定:

1.基本許可權:

1.1)設定許可權:

chmod u=rwx {檔名}    //針對該檔案,為其擁有者設定可寫/可讀/可執行許可權

chmod g=r-x {檔名}    //針對該檔案,為其所屬群組設定可寫/可執行許可權

chmod o=--- {檔名}    //針對該檔案,去除其他使用者(不是擁有者,不屬於檔案所屬群組的使用者) 的所有基本許可權

1.2)增加許可權:

chmod u+x {檔名}    //針對該檔案,為其擁有者增加可執行許可權

chmod g+r {檔名}    //針對該檔案,為其所屬群組增加可讀許可權

chmod o+w {檔名}    //針對該檔案,為其他使用者增加可寫許可權

1.3)減少許可權:

chmod u-x {檔名}    //針對該檔案,為其擁有者減少可執行許可權

chmod g-x {檔名}    //針對該檔案,為其所屬群組減少可執行許可權

chmod o-x {檔名}    //針對該檔案,為其他使用者減少可執行許可權

2.特殊許可權:

2.1)SUID

chmod u+s {檔名}

chmod u-s {檔名}

2.2)SGID

chmod g+s {檔名}

chmod g-s {檔名}

2.3)SBIT

chmod o+t {檔名}

chmod o-t {檔名}