
我只是透過終端機查看一些資料夾的權限,我不太明白它們的含義。
iMac:~ me$ ls -alt
total 40
drwx------ 4 me staff 136 10 Oct 06:17 .Trash
drwx------+ 4 me staff 136 10 Oct 06:16 Desktop
drwxr-xr-x 6 me staff 204 10 Oct 06:16 .bash_sessions
-rw-r--r--@ 1 me staff 8196 8 Oct 22:37 .DS_Store
drwx------+ 9 me staff 306 8 Oct 22:37 Downloads
drwx------@ 12 me staff 408 8 Oct 20:50 Google Drive
drwx------@ 13 me staff 442 8 Oct 20:49 Dropbox
drwx------ 9 me staff 306 8 Oct 20:49 .dropbox
drwxr-xr-x+ 19 me staff 646 8 Oct 20:48 .
-rw-r--r-- 1 me staff 100 4 Oct 12:03 .bash_history
drwx------@ 49 me staff 1666 4 Oct 10:17 Library
drwx------ 4 me staff 136 4 Oct 09:52 Applications
-r-------- 1 me staff 7 4 Oct 09:45 .CFUserTextEncoding
drwx------+ 3 me staff 102 4 Oct 09:42 Documents
drwx------+ 3 me staff 102 4 Oct 09:42 Movies
drwx------+ 3 me staff 102 4 Oct 09:42 Music
drwx------+ 3 me staff 102 4 Oct 09:42 Pictures
drwxr-xr-x+ 5 me staff 170 4 Oct 09:42 Public
drwxr-xr-x 7 root admin 238 4 Oct 09:42 ..
「.」中的「drwxr-xr-x+」與「drwxr-xr-x+」有什麼不同?並在“Google Drive”中找到“drwx------@”?
答案1
Unix 權限實際上比您最初想像的要簡單得多,並且一旦您停止嘗試將整行視為一件事,而是將其分組思考,始終以某種模式進行思考,1 3 3 3
它就會變得更容易掌握。
事實上,Mac 和其他一些 UNIX 衍生版本使用了一種1 3 3 3 1
結構 - 有關更多信息,請參見本文末尾。
這個解釋盡可能簡單,同時包含所有相關概念...
摘自https://www.cs.swarthmore.edu/help/chmod.html
unix 檔案權限
檔案權限允許您授予或拒絕對檔案和目錄的存取。權限分為三種類型:
- r = 讀
- w = 寫
- x = 執行
這些權限對於檔案和目錄來說意味著不同的事情。
對於文件:
- 讀取 - 您可以開啟並讀取文件,也可以複製它。
- write - 您可以修改文件
- 執行 - 如果文件是可執行的(如程序或命令),則可以執行(運行)該文件
對於目錄:
- read - 您可以 ls 目錄並查看內容。
- write - 您可以在該目錄中建立和刪除檔案。
- 執行 - 您可以 cd 進入該目錄。
使用 ls -l 指令查看檔案和目錄的檔案權限。這是一個例子:
$ ls -l
total 188
drwx------ jk users 4096 2008-10-24 11:30 cs21/
drwx------ jk users 4096 2007-10-01 12:24 mail/
drwxr-xr-x jk users 4096 2008-06-05 10:33 public/
-rw------- jk users 83623 2008-09-10 08:29 turing.pdf
-rw-r--r-- jk users 9134 2008-01-24 16:26 unix-by-example
上面的第一列是檔案權限(drwx------或-rw-r--r--),第二列是檔案和目錄的擁有者(jk),第三列是群組(使用者) 。
對於檔案權限,第一個字母是“d”或“-”,表示它是目錄或檔案。接下來的三個字元(例如,rwx)是檔案擁有者的權限。然後是群組權限(例如,使用者群組中的每個人),最後是其他人的權限。這裡有些例子:
* drwx------ : directory only accessible by owner
* drwxr-xr-x : directory anyone can access
* -rwxr-xr-x : file anyone can read and execute
* -rw-r----- : file only people in the group can read
若要查看您所在的群組,請執行 groups 命令。
更改檔案/目錄的權限
使用 chmod (CHange MODE) 變更檔案權限。 chmod 指令可以使用數字:
- 4 - 閱讀
- 2 - 寫
- 1 - 執行
這些不是 1、2、3 的原因是因為它們需要加起來為一個唯一的數字,具體取決於您使用的它們的組合。
因此,要授予讀寫權限:
讀 + 寫 = 4 + 2 = 6
或執行和讀取權限:
執行 + 讀取 = 1 + 4 = 5
或者只是執行權限:
執行=1
或所有權限:
讀 + 寫 + 執行 = 4 + 2 + 1 = 7
chmod 指令採用三個數字來表示三個權限:
所有者、群組、所有使用者(依序)
基本的 chmod 指令如下:
$ chmod ### directory/filename
因此,如果您想授予所有人讀取權限 (-rw-r--r--):
$ chmod 644 filename
要讓文件只有您可讀、可寫入、可執行:
$ chmod 700 filename
要使文件可供您和您的群組讀取和執行,但只能由其他人讀取:
$ chmod 554 filename
chmod 也可以使用字母:u 代表使用者(所有者),g 代表群組,o 代表其他,a 代表所有人(u、g 和 o)。因此,您可以執行 chmod g+r file 來為該群組新增讀取權限。有關 chmod 的更多信息,請參閱手冊頁 (man chmod)。
關於最後一個角色的註釋
在 Mac OS X(以及其他一些 Unix 衍生版本)上,在最終權限集之後有一個附加字元。它通常是一個空格,但也可能是 + 或 @
A + 表示檔案或目錄具有附加安全性資訊,例如 ACL。
@ 表示檔案或目錄具有擴充屬性。
您可以透過在執行 ls 時包含 -e 選項(使用 -l 選項)來查看檔案或目錄的 ACL,並透過包含 -@(也使用 -l 選項)來查看擴充屬性。
關於 ACL 和擴展屬性的討論遠遠超出了本答案,但可以找到有關擴展屬性的更多信息這裡和 ACL這裡(當然,谷歌會提供比你想知道的更多的資訊。)