在linux中,可以使用useradd命令來增加用戶,該命令的作用就是新建用戶,添加新的系統(tǒng)用戶,基本語法格式為“useradd [選項(xiàng)] 用戶名”。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
在linux中,可以使用useradd命令來新建用戶,添加新的系統(tǒng)用戶。
此命令的基本格式如下:
[root@localhost?~]#useradd?[選項(xiàng)]?用戶名
該命令常用的選項(xiàng)及各自的含義,如表 1 所示。
選項(xiàng) | 含義 |
---|---|
-u UID | 手工指定用戶的 UID,注意 UID 的范圍(不要小于 500)。 |
-d 主目錄 | 手工指定用戶的主目錄。主目錄必須寫絕對(duì)路徑,而且如果需要手工指定主目錄,則一定要注意權(quán)限; |
-c 用戶說明 | 手工指定/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)值,在沒有特殊要求下,無需使用任何選項(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 天,距離密碼過期 7 天系統(tǒng)會(huì)提示用戶“密碼即將過期”等。
-
在 /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ù)制到新用戶的主目錄中。
可以看到,useradd 命令創(chuàng)建用戶的過程,其實(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用戶的初始迎指定過來,如果不事先建立,則會(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/)、用戶說明(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、初始組、用戶說明、家目錄和登錄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/ #家目錄也建立了,不需要手工建立
通過以上 2 種方式,都可以成功創(chuàng)建用戶。通常情況下,根本不需要手工指定任何內(nèi)容,因?yàn)槭褂媚J(rèn)值就可以滿足我們的要求。那你有沒有想過,useradd 命令的這些默認(rèn)值保存哪里,能否手工修改呢?
答案是肯定的。useradd 命令在添加用戶時(shí)參考的默認(rèn)值文件主要有兩個(gè),分別是 /etc/default/useradd 和 /etc/login.defs。
相關(guān)推薦:《Linux視頻教程》