Linux命令之useradd


useradd [選項] LOGIN(登錄名)

useradd –D

useradd –D [選項]

  創建一個新用戶或更新默認新用戶信息。useradd和adduser命令相同,adduser是useradd的軟連接。如果使用時不帶-D選項,useradd命令使用命令行上指定的值和系統的默認值創建一個新的用戶。根據命令行選項,useradd命令也會更新系統文件和創建新用戶的主目錄並復制初始文件。默認上也會為用戶創建組(查看-g,-N,-U和USERGROUPS_ENAB)。

(1).用戶的分類

  超級用戶:root,擁有對系統的最高管理權限,UID默認為0。

  虛擬用戶:又叫系統用戶或偽用戶,具有一定特權,與系統或程序服務相關,但沒有真正的使用者。一般不會用來登錄系統,它主要用於維持某個訪問的正常運行,如ftp,apache等。

  普通用戶:是一種受限制的用戶,一般新建的用戶都是普通用戶。默認只能執行/bin、/usr/bin、/usr/local/bin以及自身主目錄里的命令。

  在CentOS7中系統用戶UID為1~999,普通用戶UID為1000+;以前的CentOS6中系統用戶UID為1~499,普通用戶UID為500+

  注意:UID即每個用戶的身份標識,雖然可以修改/etc/passwd(命令設置的UID不允許重復),但盡量保持唯一性,類似於每個人的身份證號碼

(2).常用選項

  -d,--home-dir HOME_DIR  創建新用戶時,用HOME_DIR作為用戶主目錄。默認情況是將用戶名附加到BASE_DIR(默認/home/)並將其用作主目錄名稱。

  -m,--create-home  其實這是一個臨時開關,表示如果不存在用戶主目錄,則生成用戶主目錄(/home/[用戶名]),骨架目錄中的文件和目錄(可以使用-k選項指定)將會被復制到主目錄。默認上,如果沒有指定此選項,並且/etc/login.defs(CREATE_HOME)的系統設置沒有啟用,則不會創建主目錄。創建用戶主目錄必須存在且具有適當的SELinux環境和權限。否則無法創建或訪問用戶的主目錄。

  -M,--no-create-home  和-m選項一樣是一個臨時開關,即使/etc/login.defs(CREATE_HOME)的系統設置是yes,也不創建用戶的主目錄。

  -g,--gid GROUP  用戶初始登錄組的組名或號碼。組名必須已存在,組號碼必須指代已存在的組。如果沒有指定,useradd的行為將會依賴於/etc/login.defs文件中的USERGROUPS_ENAB參數。如果此參數設置為yes(或在命令行上指定了-U/--user-group),將會為用戶創建一個組,組名和登錄名相同。如果選項設置為no(或在命令行上指定-N/--no-user-group),useradd會把新用戶的主組設置為/etc/default/useradd中GROUP變量指定的值,再或者默認100。

  -G,--groups GROUP1[,GROUP2,…[GROUPN]]  用戶還屬於的附加組列表。每個組都用逗號隔開,中間沒有空格。這里的組受到-g選項給定的組同樣的限制。默認上,用戶只屬於初始組。(一個用戶只允許有一個主組,可以有多個附加組)

  -s,--shell SHELL  用戶登錄shell名。默認為留空,讓系統根據/etc/default/useradd中的SHELL變量選擇默認的登錄shell,默認為空字符串。有時需要禁止某些用戶執行登錄動作,例如用來執行系統服務的用戶,這時將shell設置為/sbin/nologin就可以禁止用戶登錄。(Shell類型詳見:查看所有shell類型

(3).簡單了解的選項

  -b,--base-dir BASE_DIR  如果未指定-d HOME_DIR,系統使用默認基目錄(BASE目錄)。此時,BASE_DIR與賬戶名稱聯系起來定義主目錄(HOME目錄)。這時的BASE_DIR必須存在,否則無法創建主目錄。如果選項沒有指定,useradd將使用/etc/default/useradd中的HOMR變量,過默認的/home。

  -c,--comment COMMENT  通常是關於登錄的簡短描述,當前用於用戶全名,可以是任何字符串。

  -D,--defaults  顯示或更改默認的useradd配置。

  -e,--expiredate EXPIRE_DATE  用戶賬戶將被禁用的日期,以YYYY-MM-DD格式指定。如果沒有指定,useradd將使用/etc/default/useradd中的EXPIRE變量指定的默認過期時間,或者一個空字符串(永不過期)。
  -f,--inactive INACTIVE  密碼過期后,賬戶被徹底禁用前的天數。0表示立即禁用,-1表示禁用這個功能。如果未指定,useradd將使用/etc/default/useradd中的INACTIVE指定的默認禁用周期,或默認為-1。
  -k,--skel SKEL_DIR  骨架目錄,包含使用useradd創建用戶時,要復制到用戶主目錄中的文件和目錄。這個選項只有在指定-m(或--create-home)選項時才有效。如果此項沒有設置,骨架目錄使用/etc/default/useradd中的SKELeton的變量或默認為/etc/skel。如果可以,也復制ACL和擴展屬性。
  -K,--key KEY=VALUE  覆蓋/etc/login.defs默認值(UID_MIN,UID_MAX,UMASK,PASS_MAX_DAYS及其他)。例如:-K PASS_MAX_DAYS=-1可以用於創建一個密碼不會過期的系統賬戶,即使系統賬戶沒有密碼。你還可以指定多個-K選項,如:-K UID_MIN=100 –K UID_MAX=499。
  -l,--no-log-init  不要將用戶添加到登錄和登錄失敗數據庫。默認上,最近登錄和登錄失敗中用戶的條目會被重置,以避免重新使用先前刪除的用戶的條目。
  -N,--no-user-group  不要創建同名組,而是將用戶添加到-g選項指定的組,或根據/etc/default/useradd中的GROUP變量。如果沒有指定-g,-N和-U選項,默認行為由/etc/login.defs中的USERGROUPS_ENAB變量指定。
  -o,--non-unique  允許使用重復的UID創建用戶賬戶。此選項只有和-u選項組合使用才有效。

  -p,--password PASSWORD  加密了的密碼,就像crypt(3)的返回值。默認為禁用密碼。注意:不推薦使用這個選項,因為加密過的密碼會被用戶通過列出這個過程而看到。你應該確保密碼符合系統的密碼政策

  -r,--system  創建一個系統賬戶。將在/etc/shadow中創建沒有陳舊信息的系統用戶,並且在選擇/etc/login.defs中定義的SYS_UID_MIN到SYS_UID_MAX范圍中的數字標識,而不是UID_MIN到UID_MAX(以及它們的GID對應的創建組)。注意:useradd不會為這種用戶或篡改建主目錄,無論/etc/login.defs(CREATE_HOME)中的默認設置是怎樣。如果香味要創建的系統賬戶創建主目錄,需要指定-m選項。

  -R,--root CHROOT_DIR  在CHROOT_DIR目錄中應用更改,並使用CHROOT_DIR目錄中的配置文件。
  -u,--uid UID  用戶ID的數字值。此值必須為唯一的,除非使用了-o選項。此值必須非負,默認使用大於等於UID_MIN,且大於任何其他用戶ID最小值。
  -U,--user-group  創建一個和用戶同名的組,並將用戶添加到組中。如果沒有指定-g,-N和-UID_MIN選項,默認行為有/etc/login.defs中的USERGROUPS_ENAB變量指定。
  -Z,--selinux-user SEUSER  用戶登錄的SELinux用戶。默認為留空,這會造成系統選擇默認的SELinux用戶。

注意1:只帶-D選項使用時,useradd將顯示當前的默認值。-D和其他選項配合使用時,useradd將為指定的選項更新默認值。有效的更新默認值選項有-b,-e,-f,-g,-s。

注意2:系統管理源負責將默認的用戶文件放在/etc/skel/目錄中(或者命令行上、/etc/default/useradd中指定的任何其他目錄)。

注意3:你可能不能向NISsan組或LDAP組添加用戶。這只能在相應服務器上進行。相似的,如果用戶名已經存在於外部用戶數據庫中,比如NIS或LDAP,useradd將拒絕創建用戶賬戶的請求。

注意4:用戶名不能超過32個字節長。

(4).配置文件

  在/etc/login.defs中有如下配置變量,可以用來更改此工具的行為:

CREATE_HOME(boolean) 指示是否應該為新用戶默認創建主目錄。此設置並不應用到系統用戶,並且可以使用命令行覆蓋。
GID_MAX(number),GID_MIN(number) useradd,groupadd或newusers創建的常規組的組ID范圍。GID_MIN默認值1000(CentOS6為500),GID_MAX默認值60000。
MAIL_DIR(string)郵箱目錄。修改或刪除用戶賬戶時需要處理郵箱,如果沒有指定,將使用編譯時指定的默認值。
MAIL_FILE(string) 定義用戶郵箱文件的位置(相對於主目錄)。
注意:MAIL_DIR和MAIL_FILE變量由useradd,usermod和userdel用於創建、移動或刪除用戶郵箱。如果MAIL_CHECK_ENAB設置為yes,它們也被用於定義MAIL環境變量。
MAX_MEMBERS_PER_GROUP(number) 每個組條目的最大成員數。達到最大值時,在/etc/group開始一個新條目(行)(使用同樣的名稱,同樣的密碼,同樣的GID)。默認值是0,意味着組中的成員數沒有限制。此功能(分割組)允許限制組文件中的行長度。這對於確保NIS組的行比長於1024字符。如果要強制這個限制,可以使用25。
注意:分割組可能不受所有工具的支持(甚至在Shadow工具集中)。如果沒有必要你不應該使用這個變量。
PASS_MAX_DAYS(number) 一個密碼可以使用的最大天數。如果密碼比這個舊,將會強迫更改密碼。如果不指定,就假定為-1,這會禁用此限制。
PASS_MIN_DAYS(number) 兩次更改密碼時間最小間隔。將會拒絕任何早於此的更改密碼的嘗試。如果不指定就假定為-1,將會禁用此限制。
PASS_WARN_AGE(number) 密碼過期之前鬼畜警告的天數。0表示在過期當天警告,負值表示不警告。如果沒有指定,不會給出警告。
SYS_GID_MAX(number),SYS_GID_MIN(number) useradd、groupadd或newusers創建的系統組的組ID范圍。SYS_GID_MIN默認101(CentOS6為201),SYS_GID_MAX默認GID_MIN-1。
SYS_UID_MAX(number),SYS_UID_MIN(number) useradd或newusers創建的系統用戶的用戶ID的范圍。SYS_UID_MIN默認101(CentOS6為201),SYS_UID_MAX默認UID_MIN-1。
UID_MAX(number),UID_MIN(number) useradd或newusers創建的普通用戶的用戶ID的范圍。UID_MIN默認1000(CentOS6為500),UID_MAX默認60000。
UMASK(number) 文件模式創建掩碼初始化為此值。如果沒有指定,掩碼初始化為022。Useradd和newusers使用此掩碼設置它們創建的用戶主目錄的模式。也被login用於指定用戶的初始umask。注意,此掩碼可以被用戶的GECOS行覆蓋(當設置了QUOTAS_ENAB時),也可以被帶K指示符的limits(5)定義的限制值覆蓋。
USERGROUPS_ENAB(boolean) 如果uid和gid相同,用戶名和主用戶名也相同,使非root組的組掩碼位和屬主位相同(如:022->002,077->007)。如果設置為yes,組中也沒有成員了,userdel將移除此用戶組,useradd創建用戶時,也會創建一個同名的默認組。

(5).用戶信息存放文件

/etc/passwd  用戶基本信息
/etc/shadow  用戶安全信息(包含密碼)
/etc/group  用戶組信息
/etc/gshadow  用戶組安全信息
/etc/default/useradd  用戶創建的默認值
/etc/skel/  用戶默認骨架目錄(創建新用戶時,默認復制目錄下所有文件)
/etc/login.defs  Shadow密碼套件配置

(6).退出值(返回值)

0 成功
1 無法更新命令文件
2 無效的命令語法
3 給了選項一個無效的參數
4 UID已經使用(且沒有-o)
6 指定的組不存在
9 用戶名已被使用
10 無法更新組文件
12 無法創建主目錄
14 無法更新SELinux用戶映射

(7).實例

 1)添加用戶

[root@xuexi ~]# useradd tt
[root@xuexi ~]# tail -1 /etc/passwd
tt:x:1001:1001::/home/tt:/bin/bash    //用戶名:密碼占位符:UID:GID:用戶描述:用戶主目錄(即~):登錄后的shell
[root@xuexi ~]# tail -1 /etc/group
tt:x:1001:    //UID=GID

說明:此命令會自動創建tt組,並成為tt用戶的默認主組,同時默認登錄shell為bash。

2)建立用戶且指定UID

[root@xuexi ~]# useradd caojh -u 1044
[root@xuexi ~]# id caojh
uid=1044(caojh) gid=1044(caojh) 組=1044(caojh)
[root@xuexi ~]# tail -1 /etc/passwd
caojh:x:1044:1044::/home/caojh:/bin/bash

3)添加用戶並指定主目錄

root@xuexi ~]# useradd -d /home/myd t3
[root@xuexi ~]# tail -1 /etc/passwd
t3:x:1045:1045::/home/myd:/bin/bash    //可以看到主目錄為/home/myd

4)添加用戶並加入指定用戶組(主組和附加組)

[root@xuexi ~]# useradd -g tt t1    //指定用戶主組
[root@xuexi ~]# id t1
uid=1046(t1) gid=1001(tt) 組=1001(tt)
[root@xuexi ~]# useradd -G tt,root t2    //指定用戶附加組
[root@xuexi ~]# id t2
uid=1047(t2) gid=1047(t2) 組=1047(t2),0(root),1001(tt)

 (8).擴展

userdel [選項] LOGIN

userdel刪除用戶賬戶和相關文件

-r,--remove  刪除主目錄和郵件池(/var/mail)

[root@xuexi ~]# ls /home/
caojh  myd  t1  t2  tt  xf
[root@xuexi ~]# userdel -r tt    //tt組包含其他用戶
userdel:組“tt”沒有移除,因為它包含其它成員。  //tt組刪除失敗,但用戶刪除成功
[root@xuexi ~]# userdel -r t1
[root@xuexi ~]# ls /home/
caojh  myd  t2  xf

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM