Linux 中将用户添加到组的指令
在 Linux 操作系統下,如何添加一個新用戶到一個特定的組中?如何同時將用戶添加到多個組中?又如何將一個已存在的用戶移動到某個組或者給他增加一個組?對于不常用 Linux 的人來講,記憶 Linux 那繁多的命令行操作真是件不容易的事。
在 Linux 中,增加用戶或改變用戶的組屬性可以使用?useradd?或者?usermod?命令。useradd增加一個新用戶或者更新默認新用戶信息。usermod?則是更改用戶帳戶屬性,例如將其添加到一個已有的組中。
在 Linux 用戶系統中存在兩類組。第一類是主要用戶組,第二類是附加用戶組。所有的用戶帳戶及相關信息都存儲在?/etc/passwd?文件中,/etc/shadow?和?/etc/group?文件存儲了用戶信息。
目錄 Contents
1?useradd 示例 – 增加一個新用戶到附加用戶組
2?useradd 示例 – 增加一個新用戶到主要用戶組
3?usermod 示例 – 將一個已有用戶增加到一個已有用戶組中
4?附:管理用戶(user)和用戶組(group)的相關工具或命令
useradd 示例 – 增加一個新用戶到附加用戶組?
新增加一個用戶并將其列入一個已有的用戶組中需要用到?useradd?命令。如果還沒有這個用戶組,可以先創建該用戶組。
命令參數如下:
useradd -G {group-name}?username
例如,我們要創建一個新用戶 cnzhx 并將其添加到用戶組 developers 中。首先需要以 root 用戶身份登錄到系統中。先確認一下是否存在 developers 這個用戶組,在命令行輸入:
# grep developers /etc/group
輸出類似于:
developers:x:1124:
如果看不到任何輸出,那么就需要先創建這個用戶組了,使用?groupadd?命令:
# groupadd developers
然后創建用戶 cnzhx 并將其加入到 developers 用戶組:
# useradd -G developers cnzhx
為用戶 cnzhx 設置密碼:
# passwd cnzhx
為確保已經將該用戶正確的添加到 developers 用戶組中,可以查看該用戶的屬性,使用?id?命令:
# id cnzhx
輸出類似于:
uid=1122(cnzhx) gid=1125(cnzhx) groups=1125(cnzhx),1124(developers)
前面命令中用到的大寫的 G (-G) 參數就是為了將用戶添加到一個附加用戶組中,而同時還會為此用戶創建一個屬于他自己的新組 cnzhx。如果要將該用戶同時增加到多個附加用戶組中,可以使用英文半角的逗號來分隔多個附加組名(不要加空格)。例如,同時將 cnzhx 增加到 admins, ftp, www, 和 developers 用戶組中,可以輸入以下命令:
# useradd -G admins,ftp,www,developers cnzhx
useradd 示例 – 增加一個新用戶到主要用戶組?
要增加用戶 cnzhx 到組 developers,可以使用下面的指令:
# useradd -g developers cnzhx
# id cnzhx
輸出類似于:
uid=1123(cnzhx) gid=1124(developers) groups=1124(developers)
請注意如前面的示例的區別,這里使用了小寫字母 g (-g)作為參數,此時用戶的主要用戶組不再是 cnzhx 而直接就是 developers。
小寫字母 g (-g)將新增加的用戶初始化為指定為登錄組(主要用戶組)。此組名必須已經存在。組號(gid)即是此已有組的組號。
usermod 示例 – 將一個已有用戶增加到一個已有用戶組中?
將一個已有用戶 cnzhx 增加到一個已有用戶組 apache 中,使此用戶組成為該用戶的附加用戶組,可以使用帶 -a 參數的?usermod??指令。-a 代表 append, 也就是將用戶添加到新用戶組中而不必離開原有的其他用戶組。不過需要與 -G 選項配合使用:
# usermod -a -G apache cnzhx
如果要同時將 cnzhx 的主要用戶組改為 apache,則直接使用 -g 選項:
# usermod -g apache cnzhx
如果要將一個用戶從某個組中刪除,則
gpasswd -d user group
但是這個時候需要保證 group 不是 user 的主組。
附:管理用戶(user)和用戶組(group)的相關工具或命令?
1)管理用戶(user)的工具或命令
useradd????注:添加用戶
adduser????注:添加用戶
passwd?????注:為用戶設置密碼
usermod ???注:修改用戶命令,可以通過usermod 來修改登錄名、用戶的家目錄等等;
pwcov ?????注:同步用戶從/etc/passwd 到/etc/shadow
pwck ??????注:pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整;
pwunconv ??注:是pwcov 的立逆向操作,是從/etc/shadow和 /etc/passwd 創建/etc/passwd ,然后會刪除 /etc/shadow 文件;
finger ????注:查看用戶信息工具
id ????????注:查看用戶的UID、GID及所歸屬的用戶組
chfn ??????注:更改用戶信息工具
su ????????注:用戶切換工具
sudo ??????注:sudo 是通過另一個用戶來執行命令(execute a command as another user),su 是用來切換用戶,然后通過切換到的用戶來完成相應的任務,但sudo 能后面直接執行命令,比如sudo 不需要root 密碼就可以執行root 賦與的執行只有root才能執行相應的命令;但得通過visudo 來編輯/etc/sudoers來實現;
visudo ????注:visodo 是編輯 /etc/sudoers 的命令;也可以不用這個命令,直接用vi 來編輯 /etc/sudoers 的效果是一樣的;
sudoedit ??注:和sudo 功能差不多;
2)管理用戶組(group)的工具或命令
groupadd ???注:添加用戶組;
groupdel ???注:刪除用戶組;
groupmod ???注:修改用戶組信息
groups ?????注:顯示用戶所屬的用戶組
grpck
grpconv ????注:通過/etc/group和/etc/gshadow 的文件內容來同步或創建/etc/gshadow ,如果/etc/gshadow 不存在則創建;
grpunconv???注:通過/etc/group 和/etc/gshadow 文件內容來同步或創建/etc/group ,然后刪除gshadow文件;
將一個用戶添加到某個組,即可讓此用戶擁有該組的權限。比如在配置 VPS 上的 LAMP 服務器的時候,運行網站的 apache 用戶修改的文件,如果服務器管理用戶 cnzhx(可以通過 ssh 登錄到服務器)需要修改此文件的話,就可以將 cnzhx 加入到 apache 組中達到目的。
?
總結
以上是生活随笔為你收集整理的Linux 中将用户添加到组的指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 下表溢出
- 下一篇: mysql 删除外键