unix 檔案權限

unix 檔案權限

我只是透過終端機查看一些資料夾的權限,我不太明白它們的含義。

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這裡(當然,谷歌會提供比你想知道的更多的資訊。)

相關內容