天天看點

linux usermod

在 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檔案;

繼續閱讀