美國(guó)Linux服務(wù)器系統(tǒng)中有兩種類(lèi)型的默認(rèn)組,每個(gè)用戶應(yīng)該只有一個(gè)主要組primary group和任意數(shù)量的次要組secondary group。今天美聯(lián)科技小編就來(lái)講下美國(guó)Linux服務(wù)器系統(tǒng)把用戶賬號(hào)添加到組的辦法。
1、主要組
創(chuàng)建用戶帳戶時(shí),已將主要組添加到用戶,通常是用戶的名稱(chēng)。在執(zhí)行諸如創(chuàng)建新文件/目錄、修改文件或執(zhí)行命令等任何操作時(shí),主要組將應(yīng)用于用戶。用戶的主要組信息存儲(chǔ)在 /etc/passwd 文件中。
2、次要組
允許用戶組在同一組成員文件中執(zhí)行特定操作。例如,允許少數(shù)用戶運(yùn)行 Apache/httpd服務(wù)命令。
假設(shè)已經(jīng)擁有此操作所需的組和用戶,在進(jìn)行更改之前,先查看一下用戶和組信息,可以看到下面的用戶與他們自己的組關(guān)聯(lián),而不是與其他組關(guān)聯(lián)。
#id user1
uid=1008(user1) gid=1008(user1)groups=1008(user1)
#id user2
uid=1009(user2) gid=1009(user2)groups=1009(user2)
#id user3
uid=1010(user3) gid=1010(user3)groups=1010(user3)
也可以看到這個(gè)組中沒(méi)有關(guān)聯(lián)的用戶。
# getent group mygroup
mygroup:x:1012:
# getent group mygroup1
mygroup1:x:1013:
方法 1:使用 usermod 命令
usermod 命令修改系統(tǒng)帳戶文件,以反映命令行上指定的更改。要將現(xiàn)有用戶添加到輔助組,請(qǐng)使用帶有 -g 選項(xiàng)和組名稱(chēng)的 usermod 命令:
#usermod[-G][GroupName][UserName]
如果系統(tǒng)中不存在給定的用戶或組,將收到一條錯(cuò)誤消息。如果沒(méi)有得到任何錯(cuò)誤,那么用戶已經(jīng)被添加到相應(yīng)的組中。
要將現(xiàn)有用戶添加到多個(gè)次要組中,請(qǐng)使用帶有 -G 選項(xiàng)的 usermod 命令和帶有逗號(hào)分隔的組名稱(chēng):
#usermod[-G][GroupName1,GroupName2][UserName]
要更改用戶的主要組,請(qǐng)使用帶有 -g 選項(xiàng)和組名稱(chēng)的 usermod 命令:
#usermod[-g][GroupName][UserName]
必須使用 -g 改變用戶的主要組。
#usermod-g mygroup user3
方法 2:使用 gpasswd 命令
gpasswd 命令用于管理 /etc/group 和 /etc/gshadow,每個(gè)組都可以有管理員、成員和密碼。要將現(xiàn)有用戶添加到次要組,請(qǐng)使用帶有 -M 選項(xiàng)和組名稱(chēng)的 gpasswd 命令:
# gpasswd [-M][UserName][GroupName]
要將多個(gè)用戶添加到輔助組中,請(qǐng)使用帶有 -M 選項(xiàng)和組名稱(chēng)的 gpasswd 命令:
# gpasswd [-M][UserName1,UserName2][GroupName]
使用 gpasswd 命令從組中刪除一個(gè)用戶?要從組中刪除用戶,請(qǐng)使用帶有 -d 選項(xiàng)的 gpasswd 命令以及用戶和組的名稱(chēng):
# gpasswd [-d][UserName][GroupName]
方法 3:使用 Shell 腳本
可以讓管理員自動(dòng)執(zhí)行所需的任務(wù),sermod 命令沒(méi)有能力將多個(gè)用戶添加到組中,可以通過(guò) gpasswd 命令完成。但是,它將覆蓋當(dāng)前與組關(guān)聯(lián)的現(xiàn)有用戶。
例如,user1 已經(jīng)與 mygroup 關(guān)聯(lián)。如果要使用 gpasswd 命令將 user2 和 user3 添加到 mygroup 中,它將不會(huì)按預(yù)期生效,而是對(duì)組進(jìn)行修改。
如果要將多個(gè)用戶添加到多個(gè)組中,兩個(gè)命令中都沒(méi)有默認(rèn)選項(xiàng)來(lái)實(shí)現(xiàn)這一點(diǎn),因此需要編寫(xiě)一個(gè)小的 shell 腳本來(lái)實(shí)現(xiàn)這一點(diǎn)。如果要使用 gpasswd 命令將多個(gè)用戶添加到次要組或附加組,請(qǐng)創(chuàng)建以下 shell 腳本。
創(chuàng)建用戶列表。每個(gè)用戶應(yīng)該在單獨(dú)的行中。
$ cat user-lists.txt
user1
user2
user3
使用以下 shell 腳本將多個(gè)用戶添加到單個(gè)次要組。
vi group-update.sh
#!/bin/bash
for user in`cat user-lists.txt`
do
usermod-a -G mygroup $user
done
設(shè)置 group-update.sh 文件的可執(zhí)行權(quán)限。
#chmod+ group-update.sh
最后運(yùn)行腳本來(lái)實(shí)現(xiàn)它。
# sh group-update.sh
這時(shí)user1、user2 和 user3 已成功添加到 mygroup 中。
# getent group mygroup
mygroup:x:1012:user1,user2,user3
如果要使用 gpasswd 命令將多個(gè)用戶添加到多個(gè)次要組或附加組中,請(qǐng)創(chuàng)建以下 shell 腳本。
創(chuàng)建用戶列表。每個(gè)用戶應(yīng)該在單獨(dú)的行中。
$ cat user-lists.txt
user1
user2
user3
創(chuàng)建組列表。每組應(yīng)在單獨(dú)的行中。
$ cat group-lists.txt
Mygroup
mygroup1
使用以下 shell 腳本將多個(gè)用戶添加到多個(gè)次要組。
#!/bin/sh
for user in`more user-lists.txt`
do
for group in`more group-lists.txt`
do
usermod-a -G $group $user
done
設(shè)置 group-update-1.sh 文件的可執(zhí)行權(quán)限。
#chmod+x group-update-1.sh
最后運(yùn)行腳本來(lái)實(shí)現(xiàn)它。
# sh group-update-1.sh
方法 4:在系統(tǒng)中將用戶添加到組中的手動(dòng)方法
美國(guó)Linux服務(wù)器用戶可以通過(guò)編輯 /etc/group 文件手動(dòng)將用戶添加到任何組中。打開(kāi) /etc/group 文件并搜索要更新用戶的組名,最后將用戶更新到相應(yīng)的組中。
以上就是美國(guó)Linux服務(wù)器系統(tǒng)把用戶賬號(hào)添加到組的辦法,希望能幫助有需要的用戶。
關(guān)注美聯(lián)科技,了解更多IDC資訊!