修改linux用戶的所屬組主要使用usermod命令,分為以下步驟:1. 修改主組使用 -g 參數,如 sudo usermod -g appusers testuser;2. 添加附加組使用 -g 參數,但會覆蓋原有附加組,如 sudo usermod -g developers,docker testuser;3. 若需保留原有附加組并追加新組,使用 -ag 參數,如 sudo usermod -ag docker testuser;4. 查看用戶所屬組可用 groups、id 或 grep 命令驗證。操作時需確保具備管理員權限且目標組已存在。
修改linux用戶的所屬組,主要用到的命令是usermod。這個命令功能強大,可以用來調整用戶賬戶的各種屬性,包括所屬主組(primary group)和附加組(supplementary groups)。下面我們就來具體看看怎么用。
修改用戶的主組:使用 -g 參數
如果你需要把某個用戶的主組改掉,用的是-g參數。主組就是用戶默認歸屬的那個組,創(chuàng)建文件時默認的組權限也是從這里來的。
舉個例子,假設現在有一個用戶叫testuser,你想把他從原來的testgroup改成appusers作為主組,命令應該是這樣的:
sudo usermod -g appusers testuser
需要注意幾點:
- 要有管理員權限,所以前面加了sudo
- 指定的組必須已經存在,否則會報錯
- 修改后,用戶以前創(chuàng)建的文件所屬組不會自動變,得手動改
給用戶添加附加組:使用 -G 參數
除了主組之外,用戶還可以屬于多個附加組。這時候要用-G參數。比如你想讓testuser同時屬于developers和docker這兩個組:
sudo usermod -G developers,docker testuser
但注意一點:這個操作會覆蓋用戶當前所有的附加組。也就是說,如果用戶之前已經在www-data組里,現在不在了。如果你想保留舊的組,加上新的,就得手動列全。
還有一種情況是你只想加一個新組,不想影響原來的附加組列表,那可以用-aG組合:
sudo usermod -aG docker testuser
這里的-a意思是“append”,追加的意思,配合-G才能實現只加不刪的效果。
查看用戶當前所屬組
改完之后想確認一下效果,可以用groups命令:
groups testuser
或者直接查看/etc/group文件:
grep testuser /etc/group
不過這個文件主要是記錄組信息,用戶信息還是建議用groups或id命令更直觀:
id testuser
這條命令會顯示用戶的UID、主組GID和所有附加組。
基本上就這些。修改用戶組其實不難,關鍵是要分清楚主組和附加組的區(qū)別,還有記得在加組的時候要不要保留原來已有的組。只要這幾個點搞清楚了,用usermod就不會出錯。