7.1 useradd:创建用户
生活随笔
收集整理的這篇文章主要介紹了
7.1 useradd:创建用户
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
7.1 useradd:創建用戶
1 使用useradd 常規添加用戶工作原理流程
在使用useradd命令時,若不加任何參數選項,后面直接跟所添加的用戶名,那么系統首先會讀取/etc/login.defs(用戶定義文件)和/etc/default/useradd(用戶默認配置文件)文件中所定義的參數和規則,然后根據所設置的規則添加用戶,同時還會向/etc/passwd(用戶文件)和/etc/group(組文件)文件內添加新用戶和新用戶組記錄,向/etc/shadow(用戶密碼文件)和/etc/gshadow(組密碼文件)文件里添加新用戶和組對應的密碼信息的相關記錄。同時系統還會根據/etc/default/useradd文件所配置的信息建立用戶的家目錄,并將/etc/skel中的所有文件(包括隱藏的環境配置文件)都復制到新用戶的家目錄中。2 useradd不加選項-D的參數選項及說明
-c comment?? ?? ? ?新用戶password文件中的說明欄(冒號分隔后的第五列) -d home_dir ??? ? ?新用戶每次登入時所使用的家目錄 -e expire date ?? ?用戶終止日期。日期的指定格式為YYYY-MM-DD -f inactive_days???用戶過期幾日后永久停權。當值為0時用戶立即被停權,而當值為-1時則關閉此功能,預設值為-1 -g initial_group? ?指定用戶對應的用戶組。用戶組名必須為系統現已存在的名稱 -G?group,[...]?? ??定義此用戶為多個不同組的成員。每個用戶組使用逗號(,)分隔。用戶組名同-g選項的限制。默認值為用戶的起始用戶組 -m?? ??? ??? ?? ? ?用戶目錄如不存在則自動建立 -M???? ??? ??? ?? ?不建立用戶家目錄,優先于/etc/login.defs文件設定。創建虛擬用戶時一般不需要建立家目錄,部署應用服務時則需要創建虛擬用戶 -n?? ??? ??? ?? ? ?默認情況下用戶的用戶組與用戶的名稱是相同的。如果命令添加了-n參數,就不會生成與用戶同名的用戶組了 -r?? ??? ??? ????? 此參數是用來建立系統用戶的。系統用戶的UID會比定義在系統檔上/etc/login.defs的UID_MIN要小。注意此用法下useradd所建立的用戶不會建立用戶家目錄,也不會在乎記錄在/etc/login.defs.中的定義值。如果需要用戶家目錄必須額外指定-m參數來建立系統用戶。這是Red Hat額外增設的選項 -s shell ?? ?? ? ?用戶登入后使用的Shell名稱。默認值為不填寫,這樣系統會幫助指定預設的登入Shell(根據/etc/default/useradd預設的值) -u uid ?? ??? ??? 用戶的ID值。這個值必須是唯一的,除非用-o選項。數字不可為負值3 useradd 加 -D 選項參數說明:改變新建用戶的預設值
當執行useradd帶-D參數時,可以更改新建用戶的默認配置值(/etc/default/useradd)或者由命令行編輯文件更改預設值。可簡單理解該參數(-D)就是用于修改/etc/default/useradd配置文件的內容的,若這個文件的內容被修改,則添加新用戶不加參數時默認值就會從該/etc/default/useradd中讀取。 useradd命令的-D參數選項說明。 -b default_home?? ??? ??? ?定義用戶家目錄的基本目錄,當用戶家目錄不存在時,此目錄將作為家目錄生效 -e default_expire_date ?? ?用戶賬號停止日期,格式為YYYY-MM-DD,同useradd的-e參教 -f default_inactive ?? ??? 用戶過期幾日后停權。同useradd的-f參數 -g defaul_group?? ???? ??? 新用戶起始用戶組名或ID。用戶組名必須為現已存在的名稱。用戶組ID也必須為現已存在的用戶組。同useradd的-g參數 -s default_shell?? ??? ????用戶登入后使用的Shell名稱。修改后新加入的用戶都將使用此Shell類型,同useradd -s參數不加任何參數添加用戶的例子
[root@cs6 ~]# useradd ett [root@cs6 ~]# ls -ld /home/ett/ drwx------. 2 ett ett 4096 5月 12 01:15 /home/ett/ ●提示:創定用戶的同時還會創建一個與用戶名相同的用戶組。 在這個例子中,我們添加了一個名為ett的系統用戶,當查看/home/目錄時,會發現系統自動建立了一個ett的目錄,其就是用戶登入后的起始目錄,即家目錄。 下面再來查看/etc/passwd文件中有關新用戶ett的記錄: [root@cs6 ~]# grep -w ett /etc/passwd ett:x:500:500::/home/ett:/bin/bash 從上文過濾出的ett用戶記錄來看,用戶的UID和GID分別為500,并且ett的家目錄為/home/ett,所對應的Shell是/bin/bash。 [root@cs6 ~]# grep -w ett /etc/shadow ett:!!:18027:0:99999:7::: #<==雖然沒有創建密碼,但是密碼文件還是會增加一行相關信息。 [root@cs6 ~]# grep -w ett /etc/group ett:x:500: #<==創建用戶時,默認會創建與用戶同名的用戶組,并體現在用戶組配置文件中。 [root@cs6 ~]# grep -w ett /etc/gshadow ett:!:: #<==組密碼文件中也會有一行相關記錄。這里我們還可以查看/etc/default/useradd和/etc/login.defs兩個文件的規則,看一下ett用戶的增加是否符合這兩個配置文件預設的值。最后還可以查看/home/ett目錄下的文件,是否與/etc/skel目錄中的一樣。
useradd的-g、-u參數,執行useradd[參數]username 添加用戶
[root@cs6 ~]# groupadd -g 801 sa [root@cs6 ~]# useradd -g sa -u 901 lewen [root@cs6 ~]# id lewen uid=901(lewen) gid=801(sa) 組=801(sa)useradd的-M、-s參數的例子
[root@cs6 ~]# useradd -M -s /sbin/nologin kevin [root@cs6 ~]# ls -ld /home/kevin ls: 無法訪問/home/kevin: 沒有那個文件或目錄 [root@cs6 ~]# grep -w kevin /etc/passwd kevin:x:902:902::/home/kevin:/sbin/nologinuseradd的-c、-u、-G、-s、-d、-m、-e、-f等多個參數組合的綜合例子。
[root@cs6 ~]# useradd -u 806 -s /bin/sh -c SysUser -G root,sa -e "2019/07/12" -f 2 -d /tmp/inca inca [root@cs6 ~]# id inca uid=806(inca) gid=806(inca) groups=806(inca),0(root),801(sa) [root@cs6 ~]# tail -1 /etc/passwd inca:x:806:806:SysUser:/tmp/inca:/bin/sh/etc/passwd文件行中inca的用戶信息說明 inca |x |:806 |:1002 |:SysUser |:/tmp/inca|:/bin/sh 賬號名稱|:賬號密碼|:賬號UID|:賬號組GID|:用戶說明|:用戶家目錄|:shell解釋器[root@cs6 ~]# chage -l inca Last password change : May 11, 2019 Password expires : never Password inactive : never Account expires : Jul 12, 2019 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 [root@cs6 ~]# tail -1 /etc/shadow inca:!!:18027:0:99999:7:2:18089: #<==帶底紋的數字2即用戶過期停權的結果(一f參數) 更改字符變量 [root@cs6 ~]# cat /etc/sysconfig/i18n LANG="zh_CN.UTF-8" [root@cs6 ~]# sed -i 's/zh_CN/en_US/g' /etc/sysconfig/i18n [root@cs6 ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8" [root@cs6 ~]# source /etc/sysconfig/i18nuseradd -D參數的使用說明及案例實踐
[root@cs6 ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 #<==依賴于/etc/login.defs 的 USERGROUPS_ENAB參數,如果為no,則此處控制。 HOME=/home #<==把用戶的家目錄建在/home中。 INACTIVE=-1 #<==是否啟用用戶過期停權,-1表示不啟用。 EXPIRE= #<==用戶終止日期,不設置表示不啟用。 SHELL=/bin/bash #<==新用戶默認所用的Shel1類型。 SKEL=/etc/skel #<==配置新用戶家目錄的默認文件存放路徑。前文提到的/etc/skel,就是在這里配置生效的,即當我們用useradd添加用戶時,用戶家目錄下的文件,都是從這里配置的目錄中復制過去的。 CREATE_MAIL_SPOOL=yes #<==創建mail文件。[root@cs6 ~]# egrep -v '^$|#' /etc/login.defs MAIL_DIR /var/spool/mail PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 UID_MIN 500 UID_MAX 60000 GID_MIN 500 GID_MAX 60000 CREATE_HOME yes UMASK 077 USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512 修改實踐: [root@cs6 ~]# cp /etc/default/useradd{,.bark} [root@cs6 ~]# useradd -D -s /bin/sh [root@cs6 ~]# diff /etc/default/useradd{,.bark} 6c6 < SHELL=/bin/sh --- > SHELL=/bin/bash [root@cs6 ~]# useradd -D -e "2019/7/12" [root@cs6 ~]# diff /etc/default/useradd{,.bark} 5,6c5,6 < EXPIRE=2019/7/12 < SHELL=/bin/sh --- > EXPIRE= > SHELL=/bin/bash [root@cs6 ~]# [root@cs6 ~]# useradd zuma [root@cs6 ~]# tail -1 /etc/passwd zuma:x:903:903::/home/zuma:/bin/sh [root@cs6 ~]# chage -l zuma Last password change : May 11, 2019 Password expires : never Password inactive : never Account expires : Jul 12, 2019 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7[root@cs6 ~]# \cp /etc/default/useradd{.bark,} #<==練習完后還原系統默認的配置文件。 useradd -D的功能完全可以使用vim /etc/default/useradd編輯修改后來替代總結
以上是生活随笔為你收集整理的7.1 useradd:创建用户的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.12-7.19 id、w、who、l
- 下一篇: tracert