linux賬號管理:
[root@www ~]# useradd [-u UID] [-g 初始羣組] [-G 次要羣組] [-mM]\
> [-c 說明欄] [-d 家目錄絕對路徑] [-s shell] 使用者賬號名
選項與參數:
-u :後面接的是 UID ,是一組數字。直接指定一個特定的 UID 給這個賬號;
-g :後面接的那個組名就是initial group
該羣組的 GID 會被放置到 /etc/passwd 的第四個字段內。
-G :後面接的組名則是這個賬號還可以加入的羣組。
這個選項與參數會修改 /etc/group 內的相關數據喔!
-M :強制!不要創建用戶家目錄!(系統賬號默認值)
-m :強制!要創建用戶家目錄!(一般賬號默認值)
-c :這個就是 /etc/passwd 的第五欄的說明內容啦~可以隨便我們配置的啦~
-d :指定某個目錄成爲家目錄,而不要使用默認值。務必使用絕對路徑!
-r :創建一個系統的賬號,這個賬號的 UID 會有限制 (參考 /etc/login.defs)
-s :後面接一個 shell ,若沒有指定則默認是 /bin/bash 的啦~
-e :後面接一個日期,格式爲『YYYY-MM-DD』此項目可寫入 shadow 第八字段,
亦即賬號失效日的配置項目囉;
-f :後面接 shadow 的第七字段項目,指定口令是否會失效。0爲立刻失效,
-1 爲永遠不失效(口令只會過期而強制於登陸時重新配置而已。)
範例:完全參考默認值創建一個用戶,名稱爲 vbird1
[root@www ~]# useradd vbird1
[root@www ~]# ll -d /home/vbird1
drwx------ 4 vbird1 vbird1 4096 Feb 25 09:38 /home/vbird1
# 默認會創建用戶家目錄,且權限爲 700
[root@www ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird1:x:504:505::/home/vbird1:/bin/bash
/etc/shadow:vbird1:!!:14300:0:99999:7:::
/etc/group:vbird1:x:505: <==默認會創建一個與賬號一模一樣的羣組名
[root@www ~]# passwd [--stdin] <==所有人均可使用來改自己的口令
[root@www ~]# passwd [-l] [-u] [--stdin] [-S] \
> [-n 日數] [-x 日數] [-w 日數] [-i 日期] 賬號 <==root 功能
選項與參數:
--stdin :可以透過來自前一個管線的數據,作爲口令輸入,對 shell script 有幫助!
-l :是 Lock 的意思,會將 /etc/shadow 第二欄最前面加上 ! 使口令失效;
-u :與 -l 相對,是 Unlock 的意思!
-S :列出口令相關參數,亦即 shadow 文件內的大部分信息。
-n :後面接天數,shadow 的第 4 字段,多久不可修改口令天數
-x :後面接天數,shadow 的第 5 字段,多久內必須要更動口令
-w :後面接天數,shadow 的第 6 字段,口令過期前的警告天數
-i :後面接『日期』,shadow 的第 7 字段,口令失效日期
範例:請 root 給予 vbird2 口令
[root@www ~]# passwd vbird2
Changing password for user vbird2.
New UNIX password: <==這裏直接輸入新的口令,屏幕不會有任何反應
BAD PASSWORD: it is WAY too short <==口令太簡單或過短的錯誤!
Retype new UNIX password: <==再輸入一次同樣的口令
passwd: all authentication tokens updated successfully. <==竟然還是成功修改了
範例:使用 standard input 創建用戶的口令
[root@www ~]# echo "abc543CC" | passwd --stdin vbird2
Changing password for user vbird2.
passwd: all authentication tokens updated successfully.
[root@www ~]# usermod [-cdegGlsuLU] username
選項與參數:
-c :後面接賬號的說明,即 /etc/passwd 第五欄的說明欄,可以加入一些賬號的說明。
-d :後面接賬號的家目錄,即修改 /etc/passwd 的第六欄;
-e :後面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 內的第八個字段數據啦!
-f :後面接天數,爲 shadow 的第七字段。
-g :後面接初始羣組,修改 /etc/passwd 的第四個字段,亦即是 GID 的字段!
-G :後面接次要羣組,修改這個使用者能夠支持的羣組,修改的是 /etc/group 囉~
-a :與 -G 合用,可『添加次要羣組的支持』而非『配置』喔!
-l :後面接賬號名稱。亦即是修改賬號名稱, /etc/passwd 的第一欄!
-s :後面接 Shell 的實際文件,例如 /bin/bash 或 /bin/csh 等等。
-u :後面接 UID 數字啦!即 /etc/passwd 第三欄的數據;
-L :暫時將用戶的口令凍結,讓他無法登陸。其實僅改 /etc/shadow 的口令欄。
-U :解鎖Ulock
[root@www ~]# userdel [-r] username
選項與參數:
-r :連同用戶的家目錄也一起刪除
範例:刪除 vbird2 ,連同家目錄一起刪除
[root@www ~]# userdel -r vbird2
[root@www ~]# finger [-s] username
選項與參數:
-s :僅列出用戶的賬號、全名、終端機代號與登陸時間等等;
-m :列出與後面接的賬號相同者,而不是利用部分比對 (包括全名部分)
範例一:觀察 vbird1 的用戶相關賬號屬性
[root@www ~]# finger vbird1
Login: vbird1 Name: (null)
Directory: /home/vbird1 Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@www ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),
10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh
# 上面信息其實是同一行的數據!包括會顯示 UID/GID 以及支持的所有羣組!
[root@www ~]# groupadd [-g gid] [-r] 組名
選項與參數:
-g :後面接某個特定的 GID ,用來直接給予某個 GID ~
-r :創建系統羣組啦!與 /etc/login.defs 內的 GID_MIN 有關。
範例一:新建一個羣組,名稱爲 group1
[root@www ~]# groupadd group1
[root@www ~]# grep group1 /etc/group /etc/gshadow
/etc/group:group1:x:702:
/etc/gshadow:group1:!::
# 羣組的 GID 也是會由 500 以上最大 GID+1 來決定!
[root@www ~]# groupmod [-g gid] [-n group_name] 羣組名
選項與參數:
-g :修改既有的 GID 數字;
-n :修改既有的組名
範例一:將剛剛上個命令創建的 group1 名稱改爲 mygroup , GID 爲 201
[root@www ~]# groupmod -g 201 -n mygroup group1
[root@www ~]# grep mygroup /etc/group /etc/gshadow
/etc/group:mygroup:x:201:
/etc/gshadow:mygroup:!::
[root@www ~]# groupdel [groupname]
範例一:將剛剛的 mygroup 刪除!
[root@www ~]# groupdel mygroup
# 關於系統管理員(root)做的動作:
[root@www ~]# gpasswd groupname
[root@www ~]# gpasswd [-A user1,...] [-M user3,...] groupname
[root@www ~]# gpasswd [-rR] groupname
選項與參數:
:若沒有任何參數時,表示給予 groupname 一個口令(/etc/gshadow)
-A :將 groupname 的主控權交由後面的使用者管理(該羣組的管理員)
-M :將某些賬號加入這個羣組當中!
-r :將 groupname 的口令移除
-R :讓 groupname 的口令欄失效
# 關於羣組管理員(Group administrator)做的動作:
[someone@www ~]$ gpasswd [-ad] user groupname
選項與參數:
-a :將某位使用者加入到 groupname 這個羣組當中!
-d :將某位使用者移除出 groupname 這個羣組當中。
範例一:創建一個新羣組,名稱爲 testgroup 且羣組交由 vbird1 管理:
[root@www ~]# groupadd testgroup <==先創建羣組
[root@www ~]# gpasswd testgroup
Changing the password for group testgroup
New Password:
Re-enter new password:
# 輸入兩次口令就對了
[root@www ~]# gpasswd -A vbird1 testgroup <==加入羣組管理員爲 vbird1
[root@www ~]# grep testgroup /etc/group /etc/gshadow
/etc/group:testgroup:x:702:
/etc/gshadow:testgroup:$1$I5ukIY1.$o5fmW.cOsc8.K.FHAFLWg0:vbird1:
# 很有趣吧!此時 vbird1 則擁有 testgroup 的主控權喔!身份有點像板主啦!
範例二:以 vbird1 登陸系統,並且讓他加入 vbird1, vbird3 成爲 testgroup 成員
[vbird1@www ~]$ id
uid=504(vbird1) gid=505(vbird1) groups=505(vbird1) ....
[vbird1@www ~]$ gpasswd -a vbird1 testgroup
[vbird1@www ~]$ gpasswd -a vbird3 testgroup
[vbird1@www ~]$ grep testgroup /etc/group
testgroup:x:702:vbird1,vbird3