Linux 中將用戶添加到組的指令

在 Linux 操做系統下,如何添加一個新用戶到一個特定的組中?如何同時將用戶添加到多個組中?又如何將一個已存在的用戶移動到某個組或者給他增長一個組?對於不經常使用 Linux 的人來說,記憶 Linux 那繁多的命令行操做真是件不容易的事。php

在 Linux 中,增長用戶或改變用戶的組屬性可使用 useradd 或者 usermod 命令。useradd增長一個新用戶或者更新默認新用戶信息。usermod 則是更改用戶賬戶屬性,例如將其添加到一個已有的組中。node

在 Linux 用戶系統中存在兩類組。第一類是主要用戶組,第二類是附加用戶組。全部的用戶賬戶及相關信息都存儲在 /etc/passwd 文件中,/etc/shadow 和 /etc/group 文件存儲了用戶信息。linux

useradd 示例 – 增長一個新用戶到附加用戶組

新增長一個用戶並將其列入一個已有的用戶組中須要用到 useradd 命令。若是尚未這個用戶組,能夠先建立該用戶組。shell

命令參數以下:apache

useradd -G {group-name} username

例如,咱們要建立一個新用戶 cnzhx 並將其添加到用戶組 developers 中。首先須要以 root 用戶身份登陸到系統中。先確認一下是否存在 developers 這個用戶組,在命令行輸入:centos

# grep developers /etc/group

輸出相似於:bash

developers:x:1124:

若是看不到任何輸出,那麼就須要先建立這個用戶組了,使用 groupadd 命令:服務器

# groupadd developers

而後建立用戶 cnzhx 並將其加入到 developers 用戶組:app

# useradd -G developers cnzhx

爲用戶 cnzhx 設置密碼:ssh

# 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 組中達到目的。

相關文章
相關標籤/搜索