我們繼續建立和管理使用者和組的 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
,那麼你之前所屬的組列表將被覆蓋,再次將你拒之門外。
這些都不是災難性問題,但這意味著你必須手動將使用者新增回你所屬的所有組,這可能是個麻煩,特別是如果你失去了對 sudo
和 wheel
組的存取許可權。
在將影象複製到 /photos
目錄之前,還要做一件事情。注意,當你執行上面的 ls -l /
時,該資料夾的許可權將以 drwxr-xr-x
形式返回。
如果你閱讀我在本文開頭推薦的文章,你將知道第一個 d
表示檔案系統中的條目是一個目錄,接著你有三組三個字元(rwx
、r-x
、r-x
),它們表示目錄的所屬使用者(rwx
)的許可權,然後是所屬組(r-x
)的許可權,最後是其他使用者(r-x
)的許可權。這意味著到目前為止唯一具有寫許可權的人,即能夠在 /photos
目錄中複製或建立檔案的唯一人員是 root
使用者。
但是總結 Linux 中的許可權和特權系統已經磨練了幾十年,它繼承自昔日的舊 Unix 系統。就其本身而言,它工作的非常好,而且經過了深思熟慮。熟悉它對於任何 Linux 系統管理員都是必不可少的。事實上,除非你理解它,否則你根本就無法做很多事情。但是,這並不難。 下一次,我們將深入研究檔案,並以一個創新的方式檢視建立,操作和銷毀檔案的不同方法。最後一個總是很有趣。 回頭見! 通過 Linux 基金會和 edX 的免費“Linux 簡介”課程了解有關 Linux 的更多資訊。