1. 程式人生 > >linux下useradd命令新增使用者詳解

linux下useradd命令新增使用者詳解

1.作用

useradd命令用來建立使用者帳號和建立使用者的起始目錄,使用許可權是超級使用者。

  2.格式

  useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

3.主要引數

  -c:加上備註文字,備註文字儲存在passwd的備註欄中。

  -d:指定使用者登入時的主目錄,替換系統預設值/home/<使用者名稱>

  -D:變更預設值。

  -e:指定賬號的失效日期,日期格式為MM/DD/YY,例如06/30/12。預設表示永久有效。

  -f:指定在密碼過期後多少天即關閉該賬號。如果為0賬號立即被停用;如果為-1則賬號一直可用。預設值為-1.

  -g:指定使用者所屬的群組。值可以使組名也可以是GID。使用者組必須已經存在的,期預設值為100,即users。

  -G:指定使用者所屬的附加群組。

  -m:自動建立使用者的登入目錄。

  -M:不要自動建立使用者的登入目錄。

  -n:取消建立以使用者名稱稱為名的群組。

  -r:建立系統賬號。

  -s:指定使用者登入後所使用的shell。預設值為/bin/bash。

  -u:指定使用者ID號。該值在系統中必須是唯一的。0~499預設是保留給系統使用者賬號使用的,所以該值必須大於499。

4.說明

  useradd可用來建立使用者賬號,它和adduser命令是相同的。賬號建好之後,再用passwd設定賬號的密碼。使用useradd命令所建立的賬號,實際上是儲存在/etc/passwd文字檔案中。

5.應用例項

建立一個新使用者賬戶testuser1,並設定UID為544,主目錄為/usr/testuser1,屬於users組:

 程式碼如下 複製程式碼

  #useradd -u 544 -d /usr/testuser1  -g users -m  testuser1


加-m 如果主目錄不存在則自動建立


6.例

使用管理員賬號登陸系統,建立使用者tmp_3452 密碼3sdt5:Eawhg

新增使用者命令:

 程式碼如下 複製程式碼

[[email protected] ~]# adduser tmp_3452

修改密碼命令:

[[email protected] ~]# passwd tmp_3452

在系統出現提示輸入密碼是輸入密碼:3sdt5:Eawhg 系統提示輸入確認密碼後再輸入一次。OK新增成功。


7.useradd批量新增使用者

使用useradd時,如果後面不新增任何引數選項,例如:#sudo useradd test創建出來的使用者將是預設“三無”使用者:一無Home Directory,二無密碼,三無系統Shell。

步驟如下:

(1)建立使用者名稱列表檔案username.txt (同上)

(2)建立使用者密碼對應檔案serc.txt,格式為username:password (注意檔案的格式)   

 程式碼如下 複製程式碼
stu1:tt1
stu2:tt2
stu3:tt3
stu4:tt4
stu5:tt5
stu6:tt6  

 

(3)批量新增的指令碼檔案aa.sh

 程式碼如下 複製程式碼

##新增使用者,並且在/home/ 下為使用者生成使用者目錄。cat < username.txt | xargs -n 1 useradd -m##批處理模式下更新密碼
chpasswd < serc.txt##將上述的密碼轉換到密碼檔案和組檔案
pwconv##結束驗證資訊
echo "OK 新建完成"(4)執行該指令碼檔案,檢視執行過程

[email protected]:/home/liu/Desktop/Dos# sh aa.sh

新建完成         useradd命令,在執行沒有出錯的情況下,不會輸出任何的資訊,不會與使用者互動。但是使用者必須要記住那些設定專案,否則新增的使用者可能出現一些預想不到的結果。

 

8.新建立一個oracle使用者,這初始屬於oinstall組,且同時讓他也屬於dba組。

#useradd oracle -g oinstall -G dba

新建立一個oracle使用者,這初始屬於oinstall組,且同時讓他也屬於dba組。

 

9.無法使用shell,且其使用者目錄至/var/servlet/service

#useradd tomcat  -d /var/servlet/service -s /sbin/nologin

無法使用shell,且其使用者目錄至/var/servlet/service


二,userdel刪除使用者

刪除剛建立的賬號 tmp_3452

刪除使用者命令:

 程式碼如下 複製程式碼
[[email protected] ~]# userdel tmp_3452

或者連同使用者目錄一併刪除:

 程式碼如下 複製程式碼

[[email protected] ~]# userdel -f tmp_3452

注意:這裡如果使用者還在登陸的話,會提示,使用者正在登陸無法刪除。此時可能需要先強制使用者退出。

3. 強制退出已經登陸使用者

檢視當前登陸使用者的命令:

 程式碼如下 複製程式碼

[[email protected] ~]# w

會輸入如下結果:

 程式碼如下 複製程式碼

 12:10:27 up 21:13,  1 user,  load average: 0.00, 0.01, 0.08
USER          TTY      FROM                 [email protected]   IDLE   JCPU   PCPU WHAT
root            pts/0    ***.**.***.**    11:33    0.00s  0.08s  0.00s   w
tmp_3254  ps1       ***.**.***.**     11:33    0.00s  0.08s  0.00s   ls

這裡知道了登陸使用者的tty是ps1執行強制退出命令pkill:

命令原型: pkill -kill -t [TTY]

 程式碼如下 複製程式碼

[[email protected] ~]# pkill -kill -t ps1

執行之後再執行名w 可以看到使用者已經退出。

重複執行第二步的刪除使用者命令,刪除成功。