組管理

用戶同組嘅關係

主組 - Primary Group

創建用戶嘅時候,會同時創建一個同名組,呢個就係主組。

grep soda /etc/passwd
soda:x:1001:1001:,,,:/home/soda:/bin/bash

第 4 個字段表示主組 ID 1001,仲可以用 groups 命令嚟睇。

groups soda
soda : soda

附加組 - Secondary Groups

用戶仲可以屬於多個附加組,用嚟做權限嘅訪問控制。

ID 指令

睇用戶組信息最實用嘅命令。

id soda
uid=1001(soda) gid=1001(soda) groups=1001(soda)

gid 表示主組,groups 表示附加組。

/etc/group

組嘅配置文件,用命令嚟改,唔好手動改,唔然改錯就麻煩。

-rw-r--r-- 1 root root 886 Aug 28 21:00 /etc/group

組信息

睇 sudo 組嘅信息

grep sudo /etc/group
sudo:x:27:kuga
  • 組名:sudo
  • 密碼:x
  • 組ID:27
  • 成員:kuga

組成員有多個時,以逗號分隔:kuga,soda

新建組

sudo groupadd rocks
grep rocks /etc/group
rocks:x:1002:

改組名

sudo groupmod -n newrocks rocks

用戶分配組

保留附加組

呢個方法唔會覆蓋附加組列表。

sudo usermod -aG rocks soda
id soda
... groups=1001(soda),1002(rocks)

覆蓋附加組

去掉 -a (append) 選項會覆蓋成個附加組列表。

sudo usermod -G sudo soda
id soda
... groups=1001(soda),27(sudo)

顯然,soda 組唔見咗。

刪除附加組

刪除 soda 用戶嘅 sudo 附加組。

sudo gpasswd -d soda sudo

仲可以用覆蓋嘅方式,只保留 soda 組。

sudo usermod -G soda soda