使用者、組及其它 Linux 特性(二)

Paul Brown發表於2018-12-30

我們繼續建立和管理使用者和組的 Linux 教程之旅。

在正在進行的 Linux 之旅中,我們瞭解了如何操作資料夾或目錄,現在我們繼續討論 許可權使用者,這對於確定誰可以操作哪些檔案和目錄是必要的。上次,我們展示瞭如何建立新使用者,現在我們將重新起航:

你可以使用 groupadd 命令建立新組,然後隨意新增使用者。例如,使用:

sudo groupadd photos

這將會建立 photos 組。

你需要在根目錄下建立一個目錄

sudo mkdir /photos

如果你執行 ls -l /,結果中會有如下這一行:

drwxr-xr-x 1 root root 0 jun 26 21:14 photos

輸出中的第一個 root 是所屬的使用者,第二個 root 是所屬的組。

要將 /photos 目錄的所有權轉移到 photos 組,使用:

chgrp photos /photos

chgrp 命令通常採用兩個引數,第一個引數是將要獲得檔案或目錄所有權的組,第二個引數是希望交給組的檔案或目錄。

接著,執行 ls -l /,你會發現剛才那一行變了:

drwxr-xr-x 1 root photos 0 jun 26 21:14 photos

你已成功將新目錄的所有權轉移到了 photos 組。

然後,將你自己的使用者和 guest 使用者新增到 photos 組:

sudo usermod <你的使用者名稱> -a -G photos
sudo usermod guest -a -G photos

你可能必須登出並重新登入才能看到更改,但是當你這樣做時,執行 groups 會將 photos 顯示為你所屬的組之一。

關於上面提到的 usermod 命令,需要指明幾點。第一:注意要使用 -G 選項而不是 -g 選項。-g 選項更改你的主要組,如果你意外地使用它,它可能會鎖定你的一些東西。另一方面,-G 將你新增到列出的組中,並沒有干擾主要組。如果要將使用者新增到多個組中,在 -G 之後逐個列出它們,用逗號分隔,不要有空格:

sudo usermod <your username> -a -G photos,pizza,spaceforce

第二點:小心點不要忘記 -a 引數。-a 引數代表追加,將你傳遞給 -G 的組列表附加到你已經屬於的組。這意味著,如果你不包含 -a,那麼你之前所屬的組列表將被覆蓋,再次將你拒之門外。

這些都不是災難性問題,但這意味著你必須手動將使用者新增回你所屬的所有組,這可能是個麻煩,特別是如果你失去了對 sudowheel 組的訪問許可權。

許可權

在將影像複製到 /photos 目錄之前,還要做一件事情。注意,當你執行上面的 ls -l / 時,該資料夾的許可權將以 drwxr-xr-x 形式返回。

如果你閱讀我在本文開頭推薦的文章,你將知道第一個 d 表示檔案系統中的條目是一個目錄,接著你有三組三個字元(rwxr-xr-x),它們表示目錄的所屬使用者(rwx)的許可權,然後是所屬組(r-x)的許可權,最後是其他使用者(r-x)的許可權。這意味著到目前為止唯一具有寫許可權的人,即能夠在 /photos 目錄中複製或建立檔案的唯一人員是 root 使用者。

但是我提到的那篇文章也告訴你如何更改目錄或檔案的許可權

sudo chmod g+w /photos

執行 ls -l /,你會看到 /photos 許可權變為了 drwxrwxr-x。這就是你希望的:組成員現在可以對目錄進行寫操作了。

現在你可以嘗試將影像或任何其他檔案複製到目錄中,它應該沒有問題:

cp image.jpg /photos

guest 使用者也可以從目錄中讀取和寫入。他們也可以讀取和寫入,甚至移動或刪除共享目錄中其他使用者建立的檔案。

總結

Linux 中的許可權和特權系統已經磨練了幾十年,它繼承自昔日的舊 Unix 系統。就其本身而言,它工作的非常好,而且經過了深思熟慮。熟悉它對於任何 Linux 系統管理員都是必不可少的。事實上,除非你理解它,否則你根本就無法做很多事情。但是,這並不難。

下一次,我們將深入研究檔案,並以一個創新的方式檢視建立,操作和銷燬檔案的不同方法。最後一個總是很有趣。

回頭見!

通過 Linux 基金會和 edX 的免費“Linux 簡介”課程瞭解有關 Linux 的更多資訊。


via: https://www.linux.com/blog/learn/intro-to-linux/2018/7/users-groups-and-other-linux-beasts-part-2

作者:Paul Brown 選題:lujun9972 譯者:MjSeven 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章