新聞中心
useradd 命令新建用戶,此命令的基本格式如下:

成都創(chuàng)新互聯(lián)專注于連山企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。連山網(wǎng)站建設(shè)公司,為連山等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
[root@localhost ~]#useradd [選項(xiàng)] 用戶名
該命令常用的選項(xiàng)及各自的含義,如表 1 所示。
| 選項(xiàng) | 含義 |
|---|---|
| -u UID | 手工指定用戶的 UID,注意 UID 的范圍(不要小于 500)。 |
| -d 主目錄 | 手工指定用戶的主目錄。主目錄必須寫絕對(duì)路徑,而且如果需要手工指定主目錄,則一定要注意權(quán)限; |
| -c 用戶說(shuō)明 | 手工指定/etc/passwd文件中各用戶信息中第 5 個(gè)字段的描述性內(nèi)容,可隨意配置; |
| -g 組名 | 手工指定用戶的初始組。一般以和用戶名相同的組作為用戶的初始組,在創(chuàng)建用戶時(shí)會(huì)默認(rèn)建立初始組。一旦手動(dòng)指定,則系統(tǒng)將不會(huì)在創(chuàng)建此默認(rèn)的初始組目錄。 |
| -G 組名 | 指定用戶的附加組。我們把用戶加入其他組,一般都使用附加組; |
| -s shell | 手工指定用戶的登錄 Shell,默認(rèn)是 /bin/bash; |
| -e 曰期 | 指定用戶的失效曰期,格式為 "YYYY-MM-DD"。也就是 /etc/shadow 文件的第八個(gè)字段; |
| -o | 允許創(chuàng)建的用戶的 UID 相同。例如,執(zhí)行 "useradd -u 0 -o usertest" 命令建立用戶 usertest,它的 UID 和 root 用戶的 UID 相同,都是 0; |
| -m | 建立用戶時(shí)強(qiáng)制建立用戶的家目錄。在建立系統(tǒng)用戶時(shí),該選項(xiàng)是默認(rèn)的; |
| -r | 創(chuàng)建系統(tǒng)用戶,也就是 UID 在 1~499 之間,供系統(tǒng)程序使用的用戶。由于系統(tǒng)用戶主要用于運(yùn)行系統(tǒng)所需服務(wù)的權(quán)限配置,因此系統(tǒng)用戶的創(chuàng)建默認(rèn)不會(huì)創(chuàng)建主目錄。 |
其實(shí),系統(tǒng)已經(jīng)幫我們規(guī)定了非常多的默認(rèn)值,在沒有特殊要求下,無(wú)需使用任何選項(xiàng)即可成功創(chuàng)建用戶。例如:
[root@localhost ~]# useradd lamp
此行命令就表示創(chuàng)建 lamp 普通用戶。
不要小看這條簡(jiǎn)單的命令,它會(huì)完成以下幾項(xiàng)操作:
- 在 /etc/passwd 文件中創(chuàng)建一行與 lamp 用戶相關(guān)的數(shù)據(jù):
[root@localhost ~]# grep "lamp" /etc/passwd
lamp:x:500:500::/home/lamp:/bin/bash可以看到,用戶的 UID 是從 500 開始計(jì)算的。同時(shí)默認(rèn)指定了用戶的家目錄為 /home/lamp/,用戶的登錄 Shell 為 /bin/bash。
- 在 /etc/shadow 文件中新增了一行與 lamp 用戶密碼相關(guān)的數(shù)據(jù):
[root@localhost ~]# grep "lamp" /etc/shadow
lamp:!!:15710:0:99999:7:::當(dāng)然,這個(gè)用戶還沒有設(shè)置密碼,所以密碼字段是 "!!",代表這個(gè)用戶沒有合理密碼,不能正常登錄。同時(shí)會(huì)按照默認(rèn)值設(shè)定時(shí)間字段,例如密碼有效期有 99999 天,距離密碼過(guò)期 7 天系統(tǒng)會(huì)提示用戶“密碼即將過(guò)期”等。
- 在 /etc/group 文件中創(chuàng)建一行與用戶名一模一樣的群組:
[root@localhost ~]# grep "lamp" /etc/group
lamp:x:500:該群組會(huì)作為新建用戶的初始組。
- 在 /etc/gshadow 文件中新增一行與新增群組相關(guān)的密碼信息:
[root@localhost ~]# grep "lamp" /etc/gshadow
lamp:!::當(dāng)然,我們沒有設(shè)定組密碼,所以這里沒有密碼,也沒有組管理員。
- 默認(rèn)創(chuàng)建用戶的主目錄和郵箱:
[root@localhost ~]#ll -d /home/lamp/
drwx------ 3 lamp lamp 4096 1月6 00:19 /home/lamp/
[root@localhost ~]#ll /var/spod/mail/lamp
-rw-rw---- 1 lamp mail 0 1月6 00:19 /var/spool/mail/lamp注意這兩個(gè)文件的權(quán)限,都要讓 lamp 用戶擁有相應(yīng)的權(quán)限。
- 將 /etc/skel 目錄中的配置文件復(fù)制到新用戶的主目錄中(至于為什么,學(xué)完本節(jié)內(nèi)容就會(huì)明白)。
可以看到,useradd 命令創(chuàng)建用戶的過(guò)程,其實(shí)就是修改了與用戶相關(guān)的幾個(gè)文件或目錄,前面章節(jié)已經(jīng)對(duì)這些文件做了詳細(xì)介紹。
除了默認(rèn)創(chuàng)建用戶,我們還可以利用 useradd 命令的各種選項(xiàng)親自定制要?jiǎng)?chuàng)建的用戶,例如:
[root@localhost ~]# groupadd lamp1
#先手工添加lamp1用戶組,因?yàn)槲乙粫?huì)兒要把lamp1用戶的初始迎指定過(guò)來(lái),如果不事先建立,則會(huì)報(bào)告用戶組不存在
[root@localhost ~]# useradd -u 550 -g lamp1 -G root -d /home/lamp1 -c "test user" -s /bin/bash lamp1
#在建立用戶lamp1的同時(shí),指定了UID(550)、初始組(lamp1)、附加組(root)、家目錄(/home/lamp1/)、用戶說(shuō)明(test user)和用戶登錄Shell(/bin/bash)
[root@localhost ~]# grep "lamp1" /etc/passwd /etc/shadow /etc/group
#同時(shí)查看三個(gè)文件
/etc/passwd:lamp1:x:550:502:test user:/home/lamp1:/bin/bash
#用戶的UID、初始組、用戶說(shuō)明、家目錄和登錄Shell都和命令手工指定的一致
/etc/shadow:lamp1:!!:15710:0:99999:7:::
#lamp1用戶還沒有設(shè)定密碼
/etc/group:root:x:0:lamp1
#lamp1用戶加入了root組,root組是lamp1用戶的附加組
/etc/group:lampl:x:502:
#GID為502的組是lamp1組
[root@localhost ~]#ll -d /home/lamp1/
drwx------ 3 lamp1 lamp1 4096 1月6 01:13 /home/lamp1/
#家目錄也建立了,不需要手工建立
通過(guò)以上 2 種方式,都可以成功創(chuàng)建用戶。通常情況下,根本不需要手工指定任何內(nèi)容,因?yàn)槭褂媚J(rèn)值就可以滿足我們的要求。那你有沒有想過(guò),useradd 命令的這些默認(rèn)值保存哪里,能否手工修改呢?
答案是肯定的。useradd 命令在添加用戶時(shí)參考的默認(rèn)值文件主要有兩個(gè),分別是 /etc/default/useradd 和 /etc/login.defs。前面我們已經(jīng)詳細(xì)介紹了 /etc/login.defs,這里不再過(guò)多贅述,本節(jié)帶大家詳細(xì)了解 /etc/default/useradd 文件。
/etc/default/useradd 文件
首先,使用 Vim 命令查看 /etc/default/useradd 文件中包含哪些內(nèi)容:
[root@localhost ~]#vim /etc/default/useradd
# useradd defaults file
GR0UP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
另外,也可以直接通過(guò)命令進(jìn)行查看,結(jié)果是一樣的:
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
-D 選項(xiàng)指的就是查看新建用戶的默認(rèn)值。
表 2 對(duì)此文件中的各項(xiàng)做了詳細(xì)的解釋。
| 參數(shù) | 含義 |
|---|---|
| GR0UP=100 | 這個(gè)選項(xiàng)用于建立用戶的默認(rèn)組,也就是說(shuō),在添加每個(gè)用戶時(shí),用戶的初始組就是 GID 為 100 的這個(gè)用戶組。但 CentOS 并不是這樣的,而是在添加用戶時(shí)會(huì)自動(dòng)建立和用戶名相同的組作為此用戶的初始組。也就是說(shuō)這個(gè)選項(xiàng)并不會(huì)生效。 Linux 中默認(rèn)用戶組有兩種機(jī)制:一種是私有用戶組機(jī)制,系統(tǒng)會(huì)創(chuàng)建一個(gè)和用戶名相同的用戶組作為用戶的初始組;另一種是公共用戶組機(jī)制,系統(tǒng)用 GID 是 100 的用戶組作為所有新建用戶的初始組。目前我們采用的是私有用戶組機(jī)制。 |
| HOME=/home | 指的是用戶主目錄的默認(rèn)位置,所有新建用戶的主目錄默認(rèn)都在 /home/下,剛剛新建的 lamp1 用戶的主目錄就為 /home/lamp1/。 |
| INACTIVE=-1 | 指的是密碼過(guò)期后的寬限天數(shù),也就是 /etc/shadow 文件的第七個(gè)字段。這里默認(rèn)值是 -1,代表所有新建立的用戶密碼永遠(yuǎn)不會(huì)失效。 |
| EXPIRE= | 表示密碼失效時(shí)間,也就是 /etc/shadow 文件的第八個(gè)字段。默認(rèn)值是空,代表所有新建用戶沒有失效時(shí)間,永久有效。 |
| SHELL=/bin/bash | 表示所有新建立的用戶默認(rèn) Shell 都是 /bin/bash。 |
| SKEL=/etc/skel | 在創(chuàng)建一個(gè)新用戶后,你會(huì)發(fā)現(xiàn),該用戶主目錄并不是空目錄,而是有 .bash_profile、.bashrc 等文件,這些文件都是從 /etc/skel 目錄中自動(dòng)復(fù)制過(guò)來(lái)的。因此,更改 /etc/skel 目錄下的內(nèi)容就可以改變新建用戶默認(rèn)主目錄中的配置文件信息。 |
| CREATE_MAIL_SPOOL=yes | 指的是給新建用戶建立郵箱,默認(rèn)是創(chuàng)建。也就是說(shuō),對(duì)于所有的新建用戶,系統(tǒng)都會(huì)新建一個(gè)郵箱,放在 /var/spool/mail/ 目錄下,和用戶名相同。例如,lamp1 的郵箱位于 /var/spool/mail/lamp1。 |
注意,此文件中各選項(xiàng)值的修改方式有 2 種,一種是通過(guò) Vim 文本編輯器手動(dòng)修改,另一種就是使用文章開頭介紹的 useradd 命令,不過(guò)所用的命令格式發(fā)生了改變:
useradd -D [選項(xiàng)] 參數(shù)
用此命令修改
/etc/default/useradd 文件,可使用的選項(xiàng)如表 3 所示。
| 選項(xiàng)+參數(shù) | 含義 |
|---|---|
| -b HOME | 設(shè)置所創(chuàng)建的主目錄所在的默認(rèn)目錄,只需用目錄名替換 HOME 即可,例如 useradd -D -b /gargae。 |
| -e EXPIRE | 設(shè)置密碼失效時(shí)間,EXPIRE 參數(shù)應(yīng)使用 YYYY-MM-DD 格式,例如 useradd -D -e 2019-10-17。 |
| -f INACTIVE | 設(shè)置密碼過(guò)期的寬限天數(shù),例如 useradd -D -f 7。 |
| -g GROUP | 設(shè)置新用戶所在的初始組,例如 useradd -D -g bear。 |
| -s SHELL | 設(shè)置新用戶的默認(rèn) shell,SHELL 必須是完整路徑,例如 useradd -D -s /usr/bin/csh。 |
例如,要修改新用戶的默認(rèn) Shell 為 /bin/csh,可以使用如下方式:
[root@localhost ~]# useradd -D -s /bin/csh
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/csh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
通過(guò) /etc/default/useradd 文件,大家僅能修改有關(guān)新用戶的部分默認(rèn)值,有一些內(nèi)容并沒有在這個(gè)文件中,例如修改用戶默認(rèn)的 UID、GID,以及對(duì)用戶密碼的默認(rèn)設(shè)置,對(duì)這些默認(rèn)值的修改就需要在 /etc/login.defs 文件中進(jìn)行。
有關(guān) /etc/login.defs 文件,可閱讀《Linux /etc/login.defs》一節(jié)。
其實(shí),useradd 命令創(chuàng)建用戶的過(guò)程是這樣的,系統(tǒng)首先讀取 /etc/login.defs 和 /etc/default/useradd,根據(jù)這兩個(gè)配置文件中定義的規(guī)則添加用戶,也就是向 /etc/passwd、/etc/group、/etc/shadow、/etc/gshadow 文件中添加用戶數(shù)據(jù),接著系統(tǒng)會(huì)自動(dòng)在 /etc/default/useradd 文件設(shè)定的目錄下建立用戶主目錄,最后復(fù)制 /etc/skel 目錄中的所有文件到此主目錄中,由此,一個(gè)新的用戶就創(chuàng)建完成了。
當(dāng)然,如果你能徹底掌握 useradd 命令創(chuàng)建用戶的整個(gè)過(guò)程,完全可以手動(dòng)創(chuàng)建用戶。
名稱欄目:Linuxuseradd命令詳解:添加新的系統(tǒng)用戶
網(wǎng)頁(yè)URL:http://m.fisionsoft.com.cn/article/dhohjgg.html


咨詢
建站咨詢
