Linux ugo 許可權

來源:互聯網
上載者:User

Linux 系統中檔案的 ugo 許可權是 Linux 進行許可權管理的基本方式。本文將介紹 ugo 許可權的基本概念。
說明:本文的示範環境為 ubuntu 16.04。

檔案的所有者和組

Linux 檔案的 ugo 許可權把對檔案的訪問者劃分為三個類別:檔案的所有者、組和其他人。所謂的 ugo 就是指 user(也稱為 owner)、group 和 other 三個單詞的首字母組合。

檔案的所有者
檔案的所有者一般是建立該檔案的使用者,對該檔案具有完全的許可權。在一台允許多個使用者訪問的 Linux 主機上,可以通過檔案的所有者來區分一個檔案屬於某個使用者。當然,一個使用者也無權查看或更改其它使用者的檔案。

檔案所屬的組
假如有幾個使用者合作開發同一個項目,如果每個使用者只能查看和修改自己建立的檔案就太不方便了,也就談不上什麼合作了。所以需要一個機制允許一個使用者查看和修改其它使用者的檔案,此時就用到組的概念的。我們可以建立一個組,然後把需要合作的使用者都添加都這個組中。在設定檔案的存取權限時,允許這個組中的使用者對該檔案進行讀取和修改。

其他人
如果我想把一個檔案分享權限設定給系統中的所有使用者該怎麼辦?通過組的方式顯然是不合適的,因為需要把系統中的所有使用者都添加到一個組中。並且系統中添加了新使用者該怎麼辦,每添加一個新使用者就把他添加到這個組中嗎?這個問題可以通過其他人的概念解決。在設定檔案的存取權限時,允許其他人戶對該檔案進行讀取和修改。

檔案屬性中的許可權資訊

使用 ll 命令可以查看檔案的屬性資訊:

  • 第一組指明檔案的類型和 ugo 許可權資訊。
  • 第二組是對檔案的引用計數。
  • 第三組是檔案的所有者。
  • 第四組是檔案所屬的組。

其它的資訊我們暫時忽略。

檔案類型
第一組的第一個字元描述檔案的類型,常見的類型有如下幾種:

  • d 表示目錄
  • - 表示普通檔案
  • l 表示連結檔案
  • b 表示塊裝置檔案
  • c 表示字元裝置檔案
  • s 表示 socket 檔案

檔案的 ugo 許可權資訊
第一組資訊一個 10 個字元,除去第一個表示檔案類型的字元,其它 9 個字元表示檔案的 ugo 許可權資訊:

這 9 個字元以三個為一組,都是 rwx 或 - 的組合。其中,r 代表可讀(read)、 w 代表可寫(write)、 x 代表可執行(execute)。 這三個許可權的位置不會改變,如果沒有對應的許可權,就會以 -(減號)代替。
以所示,第一組為檔案所有者的許可權,第二組為檔案所屬組的許可權,第三組為其他人的許可權。其表示的具體含義為:檔案所有者具有對檔案的讀寫權限,檔案所屬組的使用者具有對檔案讀寫的許可權,而其他人只有讀取檔案的許可權。

下面讓我們來詳細的解釋一下讀寫執行的許可權。

  • r (read):可以讀取檔案的實際內容,比如讀取文字檔內的文字等。
  • w (write):可以編輯、增加、刪除檔案的內容(但不含刪除該檔案)。
  • x (execute):該檔案具有可以被系統執行的許可權。

可以看出,對於檔案來說,rwx 主要針對的是檔案的內容。

對目錄而言,目錄中儲存的主要是目錄下檔案名稱的列表,這與普通檔案是有些不同的:
r (read contents in directory)
表示具有讀取目錄下檔案名稱的許可權,也就是說你可以通過 ls 命令把目錄下的檔案清單查詢出來。
比如我們使用使用者 nick 建立一個目錄 testdir,並在該目錄下建立兩個檔案,此時 testdir 的許可權為:

其他人具有 r 許可權,所以可以通過 ls 命令查看該目錄下的檔案,這裡我們通過 tester 使用者查看:

然後我們修改該目錄的許可權:

現在其他人已經沒有這個目錄上的 r 許可權了,再讓使用者 tester 執行 ls 命令試試:

現在其他人已經沒有許可權查看目錄下的檔案名稱了。

w (modify contents of directory)
具有 w 許可權表明你可以在該目錄下執行如下的操作:

  • 建立新的檔案和目錄
  • 刪除已經存在的檔案與目錄(不論該檔案的許可權為何!)
  • 重新命名已存在的檔案或目錄
  • 移動該目錄內檔案、目錄的位置。

x (access directory)
目錄雖然不能被執行,但是卻具有可以執行的許可權。目錄的 x 許可權表示使用者是否可以進入該目標並成為當前的工作目錄。注意,如果使用者對目錄沒有 x 許可權,則無法查看該目錄下的檔案的內容(注意與 r 許可權的區別)。比如我們移除 testdir 目錄上的 x 許可權:

此時雖然其他人具有讀 testfile1 檔案的許可權,但我們用 tester 使用者讀取其內容時:

提示沒有許可權,原因就是我們移除了 testdir 目錄的 x 許可權。所以,如果要允許目錄被其他人瀏覽時,至少要給予 r 和 x 的許可權

檔案的所有者
第三組資訊顯示檔案的所有者,圖片中顯示的檔案所有者為 nick。檔案的所有者一般是建立該檔案的使用者,對該檔案具有完全的許可權。

檔案所屬的組
第四組資訊顯示檔案所屬的組。當我們通過 adduser 命令建立使用者時一般會建立一個同名的組,該使用者就屬於與他同名的組(比如筆者機器上的使用者 nick 就屬於 nick 組)。當我們建立檔案和目錄時,其預設所屬的組就是所有者所在的組。

儲存使用者和組的檔案

使用者和組的資訊分別記錄在 /etc/passwd、/etc/group 檔案中。可以直接以讀取文字檔的方式查看其內容:

這兩個檔案的內容是任何人都有權查看的,比如 /etc/passwd 檔案的內容如下所示:

該圖只顯示了部分使用者的資訊,其中的每一行代表一個使用者。/etc/group 檔案的結構與 /etc/passwd 檔案的結構類似。

基本操作

在建立檔案時會根據建立者的身份和其它的一些設定為檔案產生預設的許可權。比如我們全面看到的檔案 testfile:

接下來我們介紹如何通過下面的命令修改檔案許可權相關的資訊:

  • chown :改變檔案所有者
  • chgrp :改變檔案所屬的組
  • chmod :改變檔案的許可權

改變檔案所有者
通過 chown 命令可以改變檔案的所有者:

$ sudo chown tester testfile

改變檔案所屬的組
通過 chgrp 命令可以改變檔案所屬的組:

改變檔案的許可權
通過 chmod 命令可以改變檔案的許可權。對於檔案的 rwx 許可權,有兩種表示方法,數字標記法和字元標記法。
以數字表示許可權的方式如下:
r: 4
w: 2
x: 1
如果是 rwx 許可權就是 4 + 2 + 1 = 7 ,r-x 就是 4 + 1 = 5 ,--- 則為 0。所以 rw-rw-r-- 就可以用 664 來表示。如果我們想把檔案的許可權修改為 rwxrwxrwx,可以使用下面的命令:

$ chmod 777 testfile

以字元表示許可權的方式如下:
用字元 u, g, o 分別代表檔案所有者(user)、檔案所屬的組(group)和其他人(other),這就是 ugo 許可權叫法的由來。只不過還有一個 a 可以表示全部的身份(all)。具體更改許可權的文法如下:
chmod [u g o a] [+ - =] [rwx] 檔案/目錄
比如我們可以通過下面的命令把 testfile 的許可權設回 rw-rw-r--:

$ chmod ug=rw,o=r testfile

如果想去掉組的 w 許可權並給其他人添加 x 許可權可以執行下面的命令:

$ chmod g-w,o+x testfile

我們還可通過 a 為全部身份設定許可權,比如 rwx:

$ chmod a=rwx testfile

總結

ugo 許可權是學習和使用 Linux 系統的基礎,本文只介紹了其中最基本的概念和操作,希望可以協助大家瞭解 Linux 的許可權及其簡單的操作。

參考:
鳥哥 Linux 的檔案許可權與目錄配置
linux檔案許可權【基本許可權ugo】
chown man page
chgrp man page
chmod man page

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.