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 組中達到目的。©
本文發表於水景一頁。永久連結:<https://cnzhx.net/blog/linux-add-user-to-group/>。轉載請保留此資訊及相應連結。