在Linux中將用戶添加到特定組的四種方法
Linux 組是用于管理 Linux 中用戶帳戶的組織單位。對于 Linux 系統(tǒng)中的每一個用戶和組,它都有惟一的數(shù)字標識號。它被稱為 用戶 ID(UID)和組 ID(GID)。組的主要目的是為組的成員定義一組特權(quán)。它們都可以執(zhí)行特定的操作,但不能執(zhí)行其他操作。
Linux 中有兩種類型的默認組。每個用戶應(yīng)該只有一個主要組primary group和任意數(shù)量的 次要組secondary group。
主要組: 創(chuàng)建用戶帳戶時,已將主要組添加到用戶。它通常是用戶的名稱。在執(zhí)行諸如創(chuàng)建新文件(或目錄)、修改文件或執(zhí)行命令等任何操作時,主要組將應(yīng)用于用戶。用戶的主要組信息存儲在 /etc/passwd 文件中。
次要組: 它被稱為次要組。它允許用戶組在同一組成員文件中執(zhí)行特定操作。例如,如果你希望允許少數(shù)用戶運行 Apache(httpd)服務(wù)命令,那么它將非常適合。
你可能對以下與用戶管理相關(guān)感興趣。
- 在 Linux 中創(chuàng)建用戶帳戶的三種方法?
- 如何在 Linux 中創(chuàng)建批量用戶?
- 如何在 Linux 中使用不同的方法更新/更改用戶密碼?
可以使用以下四種方法實現(xiàn)。
- usermod:修改系統(tǒng)帳戶文件,以反映在命令行中指定的更改。
- gpasswd:用于管理 /etc/group 和 /etc/gshadow。每個組都可以有管理員、成員和密碼。
- Shell 腳本:可以讓管理員自動執(zhí)行所需的任務(wù)。
- 手動方式:我們可以通過編輯 /etc/group 文件手動將用戶添加到任何組中。
我假設(shè)你已經(jīng)擁有此操作所需的組和用戶。在本例中,我們將使用以下用戶和組:user1、user2、user3,另外的組是 mygroup 和 mygroup1。
在進行更改之前,我希望檢查一下用戶和組信息。詳見下文。
我可以看到下面的用戶與他們自己的組關(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)
我可以看到這個組中沒有關(guān)聯(lián)的用戶。
# getent group mygroup mygroup:x:1012: # getent group mygroup1 mygroup1:x:1013:
方法 1:使用 usermod 命令
usermod 命令修改系統(tǒng)帳戶文件,以反映命令行上指定的更改。
如何使用 usermod 命令將現(xiàn)有的用戶添加到次要組或附加組?
要將現(xiàn)有用戶添加到輔助組,請使用帶有 -g 選項和組名稱的 usermod 命令。
語法:
# usermod [-G] [GroupName] [UserName]
如果系統(tǒng)中不存在給定的用戶或組,你將收到一條錯誤消息。如果沒有得到任何錯誤,那么用戶已經(jīng)被添加到相應(yīng)的組中。
# usermod -a -G mygroup user1
讓我使用 id 命令查看輸出。是的,添加成功。
# id user1 uid=1008(user1) gid=1008(user1) groups=1008(user1),1012(mygroup)
如何使用 usermod 命令將現(xiàn)有的用戶添加到多個次要組或附加組?
要將現(xiàn)有用戶添加到多個次要組中,請使用帶有 -G 選項的 usermod 命令和帶有逗號分隔的組名稱。
語法:
# usermod [-G] [GroupName1,GroupName2] [UserName]
在本例中,我們將把 user2 添加到 mygroup 和 mygroup1 中。
# usermod -a -G mygroup,mygroup1 user2
讓我使用 id 命令查看輸出。是的,user2 已成功添加到 myGroup 和 myGroup1中。
# id user2 uid=1009(user2) gid=1009(user2) groups=1009(user2),1012(mygroup),1013(mygroup1)
如何改變用戶的主要組?
要更改用戶的主要組,請使用帶有 -g 選項和組名稱的 usermod 命令。
語法:
# usermod [-g] [GroupName] [UserName]
我們必須使用 -g 改變用戶的主要組。
# usermod -g mygroup user3
讓我們看看輸出。是的,已成功更改。現(xiàn)在,顯示user3 主要組是 mygroup 而不是 user3。
# id user3 uid=1010(user3) gid=1012(mygroup) groups=1012(mygroup)
方法 2:使用 gpasswd 命令
gpasswd 命令用于管理 /etc/group 和 /etc/gshadow。每個組都可以有管理員、成員和密碼。
如何使用 gpasswd 命令將現(xiàn)有用戶添加到次要組或者附加組?
要將現(xiàn)有用戶添加到次要組,請使用帶有 -M 選項和組名稱的 gpasswd 命令。
語法:
# gpasswd [-M] [UserName] [GroupName]
在本例中,我們將把 user1 添加到 mygroup 中。
# gpasswd -M user1 mygroup
讓我使用 id 命令查看輸出。是的,user1 已成功添加到 mygroup 中。
# id user1 uid=1008(user1) gid=1008(user1) groups=1008(user1),1012(mygroup)
如何使用 gpasswd 命令添加多個用戶到次要組或附加組中?
要將多個用戶添加到輔助組中,請使用帶有 -M 選項和組名稱的 gpasswd 命令。
語法:
# gpasswd [-M] [UserName1,UserName2] [GroupName]
在本例中,我們將把 user2 和 user3 添加到 mygroup1 中。
# gpasswd -M user2,user3 mygroup1
讓我使用 getent 命令查看輸出。是的,user2 和 user3 已成功添加到 myGroup1中。
# getent group mygroup1 mygroup1:x:1013:user2,user3
如何使用 gpasswd 命令從組中刪除一個用戶?
要從組中刪除用戶,請使用帶有 -d 選項的 gpasswd 命令以及用戶和組的名稱。
語法:
# gpasswd [-d] [UserName] [GroupName]
在本例中,我們將從 mygroup 中刪除 user1 。
# gpasswd -d user1 mygroup Removing user user1 from group mygroup
方法 3:使用 Shell 腳本
基于上面的例子,我知道 usermod 命令沒有能力將多個用戶添加到組中,可以通過 gpasswd 命令完成。但是,它將覆蓋當前與組關(guān)聯(lián)的現(xiàn)有用戶。
例如,user1 已經(jīng)與 mygroup 關(guān)聯(lián)。如果要使用 gpasswd 命令將 user2 和 user3添加到 mygroup 中,它將不會按預(yù)期生效,而是對組進行修改。
如果要將多個用戶添加到多個組中,解決方案是什么?
兩個命令中都沒有默認選項來實現(xiàn)這一點。
因此,我們需要編寫一個小的 shell 腳本來實現(xiàn)這一點。
如何使用 gpasswd 命令將多個用戶添加到次要組或附加組?
如果要使用 gpasswd 命令將多個用戶添加到次要組或附加組,請創(chuàng)建以下 shell 腳本。
創(chuàng)建用戶列表。每個用戶應(yīng)該在單獨的行中。
$ cat user-lists.txt user1 user2 user3
使用以下 shell 腳本將多個用戶添加到單個次要組。
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
最后運行腳本來實現(xiàn)它。
# sh group-update.sh
讓我看看使用 getent 命令的輸出。是的,user1、user2 和 user3 已成功添加到 mygroup 中。
# getent group mygroup mygroup:x:1012:user1,user2,user3
如何使用 gpasswd 命令將多個用戶添加到多個次要組或附加組?
如果要使用 gpasswd 命令將多個用戶添加到多個次要組或附加組中,請創(chuàng)建以下 shell 腳本。
創(chuàng)建用戶列表。每個用戶應(yīng)該在單獨的行中。
$ cat user-lists.txt user1 user2 user3
使用以下 shell 腳本將多個用戶添加到多個次要組。
#!/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
最后運行腳本來實現(xiàn)它。
# sh group-update-1.sh
讓我看看使用 getent 命令的輸出。是的,user1、user2 和 user3 已成功添加到 mygroup 中。
# getent group mygroup mygroup:x:1012:user1,user2,user3
此外,user1、user2 和 user3 已成功添加到 mygroup1 中。
# getent group mygroup1 mygroup1:x:1013:user1,user2,user3
方法 4:在 Linux 中將用戶添加到組中的手動方法
我們可以通過編輯 /etc/group 文件手動將用戶添加到任何組中。
打開 /etc/group 文件并搜索要更新用戶的組名。最后將用戶更新到相應(yīng)的組中。
# vi /etc/group
到此這篇關(guān)于在Linux中將用戶添加到特定組的四種方法的文章就介紹到這了,更多相關(guān)Linux將用戶添加到特定組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Apache2.2以上版本與Tomcat整合配置及負載均衡實現(xiàn)
今天技術(shù)總監(jiān)叫實現(xiàn)Apache和Tomacat整合,結(jié)果找了很多的資料,發(fā)現(xiàn)最方便的還是本文啊.apache2.2以上版本,無需使用jk_mod來集成tomcat,直接使用ajp,很方便,感興趣的朋友可以了解下啊2013-01-01Ubuntu Server 11.10安裝配置lamp(Apache+MySQL+PHP)
這篇文章主要介紹了Ubuntu Server 11.10安裝配置lamp(Apache+MySQL+PHP),需要的朋友可以參考下2016-10-10Linux系統(tǒng)實現(xiàn)ansible自動化安裝配置httpd的方法
這篇文章主要介紹了Linux系統(tǒng)實現(xiàn)ansible自動化安裝配置httpd的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02linux中使用boost.python調(diào)用c++動態(tài)庫的方法
這篇文章主要給大家介紹了關(guān)于linux中使用boost.python調(diào)用c++動態(tài)庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧2018-11-11Apache服務(wù)器主配置文件httpd.conf詳解
這篇文章主要介紹了Apache服務(wù)器主配置文件httpd.conf詳解,需要的朋友可以參考下2014-09-09Linux應(yīng)用程序使用寫文件調(diào)試程序的方法
今天小編就為大家分享一篇關(guān)于Linux應(yīng)用程序使用寫文件調(diào)試程序的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12Centos7.2 系統(tǒng)上yum安裝lamp環(huán)境
這篇文章主要介紹了centos7.2 系統(tǒng)上yum安裝lamp環(huán)境的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-11-11Apache 配置多端口 多虛擬主機 局域網(wǎng)訪問示例
這篇文章主要介紹了Apache如何配置多端口 多虛擬主機 局域網(wǎng)訪問,需要的朋友可以參考下2014-05-05