useradd命令用於Linux中建立的新的系統用戶。useradd可用來創建用戶賬號。賬號建好以後,再用passwd設定賬號的密碼.而可用userdel刪除賬號。使用useradd指令所創建的賬號,其實是保存在/etc/passwd
文本文件中。linux
在Slackware中,adduser指令是個script程序,利用交談的方式取得輸入的用戶賬號資料,而後再交由真正創建賬號的useradd命令創建新用戶,如此可方便管理員創建用戶賬號。在Red Hat Linux中,adduser命令則是useradd命令的符號鏈接,二者其實是同一個指令。shell
useradd(選項)(參數)
-c<備註>:加上備註文字。備註文字會保存在passwd的備註欄位中;
-d<登入目錄>:指定用戶登入時的啓始目錄;
-D:變動預設值;
-e<有效期限>:指定賬號的有效期限;
-f<緩衝天數>:指定在密碼過時後多少天即關閉該賬號;
-g<羣組>:指定用戶所屬的羣組;
-G<羣組>:指定用戶所屬的附加羣組;
-m:自動創建用戶的登入目錄;
-M:不要自動創建用戶的登入目錄;
-n:取消創建以用戶名稱爲名的羣組;
-r:創建系統賬號;
-s<shell>:指定用戶登入後所使用的shell;
-u<uid>:指定用戶id。
用戶名:要建立的用戶名。bash
新建用戶加入組:ui
useradd –g sales jack –G company,employees //-g:加入主要組、-G:加入次要組
創建一個新用戶帳戶,並設置ID:加密
useradd caojh -u 544
須要說明的是,設定ID值時儘可能要大於500,以避免衝突。由於Linux安裝後會創建一些特殊用戶,通常0到499之間的值留給bin、mail這樣的系統帳號。spa
groupadd命令用於建立一個新的工做組,新工做組的信息將被添加到系統文件中。.net
groupadd(選項)(參數)
-g:指定新建工做組的id;
-r:建立系統工做組,系統工做組的組ID小於500;
-K:覆蓋配置文件「/ect/login.defs」; -o:容許添加組ID號不惟一的工做組。
組名:指定新建工做組的組名。code
創建一個新組,並設置組ID加入系統:token
groupadd -g 344 linuxde
此時在/etc/passwd
文件中產生一個組ID(GID)是344的項目。ip
d命令能夠顯示真實有效的用戶ID(UID)和組ID(GID)。UID 是對一個用戶的單一身份標識。組ID(GID)則對應多個UID。id命令已經默認預裝在大多數Linux系統中。要使用它,只須要在你的控制檯輸入id。不帶選項輸入id會顯示以下。結果會使用活躍用戶。
當咱們想知道某個用戶的UID和GID時id命令是很是有用的。一些程序可能須要UID/GID來運行。id使咱們更加容易地找出用戶的UID以GID而沒必要在/etc/group
文件中搜尋。如往常同樣,你能夠在控制檯輸入man id
進入id的手冊頁來獲取更多的詳情。
id [-gGnru][--help][--version][用戶名稱]
-g或--group 顯示用戶所屬羣組的ID。
-G或--groups 顯示用戶所屬附加羣組的ID。
-n或--name 顯示用戶,所屬羣組或附加羣組的名稱。
-r或--real 顯示實際ID。
-u或--user 顯示用戶ID。
-help 顯示幫助。
-version 顯示版本信息。
[root@localhost ~]# id uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
解釋:用戶root的UID號碼 = 0,GID號碼 = 0。用戶root是下面組的成員:
打印用戶名、UID 和該用戶所屬的全部組,要這麼作,咱們可使用 -a 選項:
[root@localhost ~]# id -a uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
輸出全部不一樣的組ID ,有效的,真實的和補充的,咱們可使用 -G 選項來實現:
[root@localhost ~]# id -G 0 1 2 3 4 6 10
結果只會顯示GID號。你能夠和/etc/group
文件比較。下面是/etc/group
文件的示例內容:
只輸出有效的組ID,經過使用 -g 選項來只輸出有效組ID:
[root@localhost ~]# id -g 0
輸出特定用戶信息,咱們能夠輸出特定的用戶信息相關的UID和GID。只須要在id命令後跟上用戶名:
[root@localhost ~]# id www uid=500(www) gid=500(www) groups=500(www)
passwd命令用於設置用戶的認證信息,包括用戶密碼、密碼過時時間等。系統管理者則能用它管理系統用戶的密碼。只有管理者能夠指定用戶名稱,通常用戶只能變動本身的密碼。
passwd(選項)(參數)
-d:刪除密碼,僅有系統管理者才能使用; -f:強制執行; -k:設置只有在密碼過時失效後,方能更新; -l:鎖住密碼; -s:列出密碼的相關信息,僅有系統管理者才能使用; -u:解開已上鎖的賬號。
用戶名:須要設置密碼的用戶名。
與用戶、組帳戶信息相關的文件
存放用戶信息:
/etc/passwd /etc/shadow
存放組信息:
/etc/group /etc/gshadow
用戶信息文件分析(每項用:
隔開)
例如:jack:X:503:504:::/home/jack/:/bin/bash
jack //用戶名
X //口令、密碼
503 //用戶id(0表明root、普通新建用戶從500開始)
504 //所在組
: //描述
/home/jack/ //用戶主目錄
/bin/bash //用戶缺省Shell
組信息文件分析
例如:jack:$!$:???:13801:0:99999:7:*:*: jack //組名 $!$ //被加密的口令 13801 //建立日期與今天相隔的天數 0 //口令最短位數 99999 //用戶口令 7 //到7天時提醒 * //禁用天數 * //過時天數
若是是普通用戶執行passwd只能修改本身的密碼。若是新建用戶後,要爲新用戶建立密碼,則用passwd用戶名,注意要以root用戶的權限來建立。
[root@localhost ~]# passwd linuxde //更改或建立linuxde用戶的密碼; Changing password for user linuxde. New UNIX password: //請輸入新密碼; Retype new UNIX password: //再輸入一次; passwd: all authentication tokens updated successfully. //成功;
普通用戶若是想更改本身的密碼,直接運行passwd便可,好比當前操做的用戶是linuxde。
[linuxde@localhost ~]$ passwd Changing password for user linuxde. //更改linuxde用戶的密碼; (current) UNIX password: //請輸入當前密碼; New UNIX password: //請輸入新密碼; Retype new UNIX password: //確認新密碼; passwd: all authentication tokens updated successfully. //更改爲功;
好比咱們讓某個用戶不能修改密碼,能夠用-l
選項來鎖定:
[root@localhost ~]# passwd -l linuxde //鎖定用戶linuxde不能更改密碼;
Locking password for user linuxde.
passwd: Success //鎖定成功;
[linuxde@localhost ~]# su linuxde //經過su切換到linuxde用戶;
[linuxde@localhost ~]$ passwd //linuxde來更改密碼;
Changing password for user linuxde.
Changing password for linuxde
(current) UNIX password: //輸入linuxde的當前密碼;
passwd: Authentication token manipulation error //失敗,不能更改密碼;
再來一例:
[root@localhost ~]# passwd -d linuxde //清除linuxde用戶密碼; Removing password for user linuxde. passwd: Success //清除成功; [root@localhost ~]# passwd -S linuxde //查詢linuxde用戶密碼狀態; Empty password. //空密碼,也就是沒有密碼;
注意:當咱們清除一個用戶的密碼時,登陸時就無需密碼,這一點要加以注意。