用戶、組及其它 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
,那麼你之前所屬的組列表將被覆蓋,再次將你拒之門外。
這些都不是災難性問題,但這意味著你必須手動將用戶添加回你所屬的所有組,這可能是個麻煩,特別是如果你失去了對 sudo
和 wheel
組的訪問許可權。
許可權
在將圖像複製到 /photos
目錄之前,還要做一件事情。注意,當你執行上面的 ls -l /
時,該文件夾的許可權將以 drwxr-xr-x
形式返回。
如果你閱讀我在本文開頭推薦的文章,你將知道第一個 d
表示文件系統中的條目是一個目錄,接著你有三組三個字元(rwx
、r-x
、r-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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive