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

2018-12-30 19:33:00

我們繼續建立和管理使用者和組的 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 photossudo 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 使用者。

但是總結

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

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

回頭見!

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