![]() |
![]() |
![]() |
![]() |
![]() |
$ head -n3 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin $ tail -n3 /etc/passwd gdm:x:42:42::/var/gdm:/sbin/nologin aaa:x:500:500::/home/aaa:/bin/bash bbb:x:501:501::/home/bbb:/bin/bash |
User Name: | Password: | UID: | GID: | Remark: | Home Directory: | Shell |
↑ | ↑ | ↑ | ↑ | ↑ | ↑ | ↑ |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
# ls -l /etc/passwd /etc/shadow ←看此兩檔的權限有什不同 -rw-r--r-- 1 root root 1736 2011-11-03 01:47 /etc/passwd -r-------- 1 root root 1147 2011-11-03 01:47 /etc/shadow ↑擁有者和群組皆為〝root〞,且只有〝root〞可讀 # head -n3 /etc/shadow ←記得用〝root〞登入才可讀 root:$1$iTcAPoAy$a28ghr3y112Dxtp1AGpzF0:15280:0:99999:7::: bin:*:15280:0:99999:7::: daemon:*:15280:0:99999:7::: # tail -n3 /etc/shadow gdm:!!:15280:0:99999:7::: aaa:$1$01Mc6F6n$09JiVXW1PrT5JANipdaCr/:15280:0:99999:7::: bbb:$1$oXtIbeRn$u92TjWY.Okkr8SQY2kthr1:15280:0:99999:7::: |
User Name: | Password: | Last: | May: | Must: | Warn: | Expire: | Disable: | Reserved: |
↑ | ↑ | ↑ | ↑ | ↑ | ↑ | ↑ | ↑ | ↑ |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
詳細內容如下:
[aaa@localhost ~]$ passwd ←變更自己的密碼 Changing password for user aaa. Changing password for aaa. (current) UNIX password: ←輸入目前的密碼 New UNIX password:←輸入新的密碼 Retype new UNIX password:←再輸入新的密碼(怕打錯字,故會要求輸入兩次) Passwd: all authenticatin tokens updated successfully. |
語法:passwd [-otpiton][--option] [USER_NAME] | |||
指令名稱/功能/命令使用者 | 選項 | 功能 | 註 |
passwd/ (password)變更密碼/ Any |
-d | 刪除密碼,同把〝/etc/shadow〞中把第 5 欄刪除(留空白) | 只適用於 superuser |
-l(小寫 L) | 鎖住帳號 (〝/etc/shadow〞中的密碼欄前加〝!〞或〝!!〞) | 只適用於 superuser | |
-u | 解除已鎖住的帳號(拿掉〝/etc/shadow〞密碼欄前加的〝!〞或〝!!〞) | 只適用於 superuser | |
-f | 如沒設密碼但用過 -l 鎖住帳號此時如要解除鎖住的帳號,要配合選項 -u 用 -fu 強迫解除鎖住的帳號 | 只適用於 superuser | |
-n | 設密碼不可修改天數,同自行修改〝/etc/shadow〞中的第 4 欄 | 只適用於 superuser | |
-x | 設密碼的有效天數,同自行修改〝/etc/shadow〞中的第 5 欄 | 只適用於 superuser | |
-w | 設密碼快失效前發出警告的天數,同自行修改〝/etc/shadow〞中的第 6 欄 | 只適用於 superuser | |
-i | 設密碼過期容許時間,同自行修改〝/etc/shadow〞中的第 7 欄 | 只適用於 superuser | |
-S | 輸出密碼的簡易資訊 | 只適用於 superuser | |
--stdin | 用輸入重定向來建立密碼 | 只適用於 superuser | |
--help | 指令自帶說明 |
# useradd guest; passwd –d guest ←建立一個不用登入密碼的公用臨時帳號〝guset〞 # passwd aaa ←變更帳號〝aaa〞的密碼 # passwd -l aaa ←鎖住〝aaa〞帳號(同〝/etc/shadow〞的密碼欄(第二欄)的開頭加上〝!〞或〝!!〞) # passwd -u aaa ←解除〝aaa〞鎖住的帳號(密碼欄開頭的〝!〞或〝!!〞拿掉) # passwd -S bbb ←輸出帳號〝bbb〞的密碼簡易資訊 # passwd -x 100 bbb ←設定帳號〝bbb〞有效天數為 100天(同修改〝/etc/shadow〞中的第 5 欄為 100) |
# echo "123abc" | passwd --stdin aaa ←此時帳號〝aaa〞密碼為〝123abc〞 |
# useradd mandino ←新增帳號〝mandino〞 # cat /etc/passwd | grep '/home/mandino' | cut -d":" -f1 ←驗證一下〝/etc/passwd〞看有沒加入〝mandino〞帳號 mandino # passwd mandino ←不要忘記,要馬上為新增的帳號設密碼 |
語法:useradd [-otpiton][--option] [USER_NAME] | ||
指令名稱/功能//命令使用者 | 選項 | 功能 |
useradd/ (user added)新增帳號/ Superuser |
-c | 增加註解,同自行修改〝/etc/passwd〞中的第 5 欄 |
-d PATH | 指定家目錄(PATH 為 絕對路徑),同自行修改〝/etc/passwd〞中的第 6 欄 | |
-D | 顯示或變更預設帳號的值,可接的項目有 [-b]家目錄 [-e]密碼失效目期 (格式為 YYYY-MM-DD) [-f]密碼過期容許時間 [-g]預設群組 [-G]附加群組 (supplementary groups) [-s]設登入時預設的 shell |
|
-e | 設密碼失效日期,同自行修改〝/etc/shadow〞中的第 8 欄 | |
-f | 設密碼過期容許時間,同自行修改〝/etc/shadow〞中的第 7 欄 (如值為〝-1〞則會在〝/etc/shadow〞中的第 7 欄保持空白) |
|
-g | 設預設群組(群組名稱要存在於 /etc/group ) | |
-G | 設附加群組(附加的群組名稱要存在於 /etc/group ),附加群組用法參考群組管理 | |
-m | 自動建立家目錄 | |
-M | 不自動建立家目錄 | |
-r | 建立系統帳號(系統帳號規則為密碼欄不會過期 & 不產生家目錄 & UID 小於 500) | |
-s | 指定登入時預設的 shell | |
--help | 指令自帶說明 |
# useradd -D ←查詢新增帳號的規則 GROUP=100 ←群組 id=100(不過 Fedora 等發行版預設的群組名稱就是帳號名稱,此設定是無作用) HOME=/home ←家目錄 INACTIVE=-1 ←密碼過期容許時間,值〝-1〞表示〝/etc/shadow〞中的第 7 欄空白 EXPIRE= ←密碼失效目期 SHELL=/bin/bash ←登入時預設的 shell SKEL=/etc/skel ←新增帳號時要複製到家目錄內的檔案(一般為環境變數設定檔,且為隱藏檔) CREATE_MAIL_SPOOL=yes ←建立 email 多工緩衝區(會在〝/var/spool/mail〞目錄下產生一對應的檔案) |
# useradd -D -b /home -e 2016-09-01 |
# useradd -m -s /bin/csh joe ←指定新增的帳號〝joe〞登入的 Shell 為〝C sehll〞 # useradd -e 2016-10-30 frank ←指定帳號失效時間為 〝2016 10 月 30 日〞 # useradd -u 507 phoebe ←指定帳號的 UID=507 (一般不用特別指定 UID) # useradd -g qa kiwi ←建立帳號〝kiwi〞並指定群組為〝qa〞(群組名稱要已存在〝/etc/group〞) # useradd -g qa kiwi -G factory ←同上例,但額外指定〝factroy〞為附加群組(附加的群組名稱要已存在〝/etc/group〞) |
語法:userdel [-otpiton][--option] [USER_NAME] | ||
指令名稱/功能/命令使用者 | 選項 | 功能 |
userdel/ (user delete)刪除帳號/ Superuser |
-r | 連同此帳號的家目錄和 email spool 都一並刪除 |
--help | 指令自帶說明 |
# userdel -r john ←連同帳號〝john〞和其家目錄和 email spool 一並刪除 |
語法:usermod [-otpiton][--option] [USER_NAME][NEW USER_NAME OLD_USER_NAME] | ||
指令名稱/功能/命令使用者 | 選項 | 功能 |
usermod/ (user modify)修改帳號/ Superuser |
-a | 配合 -G 追加附加群組 |
-c | 修改註解,同自行修改〝/etc/passwd〞中的第 5 欄 | |
-d PATH | 修改家目錄(PATH 為 絕對路徑),同自行修改〝/etc/passwd〞中的第 6 欄 | |
-e | 修改密碼失效目期,同自行修改〝/etc/shadow〞中的第 8 欄 | |
-f | 修改密碼過期容許時間,同自行修改〝/etc/shadow〞中的第 7 欄 (如值為〝-1〞表示〝/etc/shadow〞中的第 7 欄空白) |
|
-g GROUP | 修改主群組為 GROUP | |
-G GROUP | 新加附加群組 GROUP | |
-l | (小寫的 L)修改帳號名稱,同自行修改〝/etc/shadow〞和〝/etc/passwd〞中的第 1 欄 | |
-L | 鎖住帳號 (〝/etc/shadow〞中密碼欄前加〝!〞或〝!!〞) | |
-s | 修改登入時預設的 shell | |
-u | 修改帳號的 UID | |
-U | 解除鎖住的帳號 | |
--help | 指令自帶說明 |
# usermod -l micle micheal ←將帳號〝micheal〞改為〝micle〞 # usermod -e 2016-10-30 micle ←修改帳號失效時間為〝2016 10月 30 日〞 # usermod alice -G sales ←為帳號〝alice〞加附加群組〝sales〞(附加群組要先用指令 groupadd 加過其名稱) # usermod alice -a -G sub_grp ←為帳號〝alice〞再追加一加附加群組〝sub_grp〞 |
語法:chfn-otpiton [USER_NAME] | ||
指令名稱/功能/命令使用者 | 選項 | 功能 |
chfn/ (change finger information)修改帳號註解/ Any |
-f | 修改全名 |
-o | 修改公司名稱 | |
-p | 修改公司電話 | |
-h | 修改家裡電話 | |
--help | 指令自帶說明 |
# chfn -f "John Doe" -h "123-456-7890" jonn ←依序更帳號〝john〞的全名、家裡電話 |
語法:chsh[-otpiton][--option] [USER_NAME] | ||
指令名稱/功能/命令使用者 | 選項 | 功能 |
chsh/ (change shell)修改登入 Shell/ Any |
-s | 指定登入的 Shell |
-l | 列出可用的 Shell | |
--help | 指令自帶說明 |
$ chsh -l ←查詢有那些 shell 可用 /bin/sh /bin/bash /sbin/nologin /bin/zsh $ chsh -s /bin/zsh ←指定〝Z Shell〞為此帳號以後預設的 Shell(要登出後再登入才會生效) |
語法:finger [-otpiton] [USER_NAME][@HOST] | ||
指令名稱/功能/命令使用者 | 選項 | 功能 |
finger/ 查詢帳號/ Any |
-l | (小寫的 L)此為預設值(沒這選項效果相同)為顯示帳號全名、家目錄、登入 shell、登入狀態、郵件狀態和顯示此帳號家目錄下如下的隱藏檔內容:(有則顯示,沒有這些隱藏檔則不顯示) 〝~/.plan〞[註 1.0A]。 〝~/.forward〞 〝~/.project〞 〝~/.pgpkey〞 |
-m | 排除搜尋全名 | |
-p | 排除顯示此帳號家目錄下如下隱藏檔內容: 〝~/.plan〞 〝~/.project〞 〝~/.pgpkey〞 |
|
-s | 排除顯示家目錄、登入 shell、郵件狀態 | |
--help | 指令自帶說明 |
$ finger john ←查詢帳號或全名符合〝john〞的使用者 Login: aaa Name: john smith ←全名有〝john〞 Directory: /home/aaa Shell: /bin/bash Office: ABC Tech, 123 Home Phone: 456 Last login Wed Aug 29 14:55 (CST) on tty2 No mail. No Plan. Login: john ←帳號為〝john〞 Name: H.R. lewis Directory: /home/john Shell: /bin/bash Office: ABC Tech, 789 Home Phone: 777 Last login Wed Aug 29 14:54 (CST) on tty1 Mail forwarded to aaa@localhost ←如有〝.forward〞檔,會顯示轉信給誰 No mail. PGP key: ←如有〝~/.pgpkey〞檔會顯示內容 tg3G58yQYCqw Project: ←如有〝~/.project〞檔會顯示內容 Release Beta2 for HR Dep. Plan: ←如有〝~/.plan〞檔會顯示內容 clean my vehicle @SUNDAY |
$ finger john@abcd.com.tw ←若格式為 finger user@host 時其預設選項為〝-l〞的顯示模式 [abcd.com.tw] Login Name: john Directory:/home/john Shell:/bin/sh On since May 8 08:13:22 on console No Plan. $ finger @abcd.com.tw ←當格式為 finger @host 時預設選項為〝-s〞的顯示模式 [abcd.com.tw] Login Name TTY Idle When brown Bob Brown console 2d Mar 15 13:19 sunny sunny kao tty00 15: Mar 15 13:01 |
語法:id [-otpiton][--option] [USER_NAME] | ||
指令名稱/功能/命令使用者 | 選項 | 功能 |
id/(print user identity)顯示帳號 ID / Any |
-a | 顯示帳號所有資訊(此為預設值) |
-Z | 顯示帳號和安全有關的資訊 | |
-g | 顯示有效群組 ID | |
-G | 顯示所有的群組成員 ID | |
-n |
顯示帳號或群組名稱(需配合〝-g〞、〝-G〞或〝-u〞使用) |
|
-r | 和〝-n〞相反,顯示帳號的 UID/GID 號碼(需配合〝-g〞、〝-G〞或〝-u〞使用) | |
-u | 顯示帳號有效的 UID 號碼 | |
--help | 指令自帶說明 |
$ id ←顯示帳號所有資訊 uid=500(aaa) gid=500(aaa) grpups=500(aaa),502(sub_grp) context=unconfined_u:syst em_r:unconfined_t:s0 $ id -G ←查詢使用者有那些群組成員 ID 501 502 $ id -Gn ←同上,但顯示名稱 aaa sub_grp $ id austin ←也可顯示其他帳號資訊 |
語法:id [-otpiton][--option] | ||
指令名稱/功能/命令使用者 | 選項 | 功能 |
who/( who is logged on)顯示登入資訊 / Any |
-a | all |
-b | 最後開機時間 | |
-d | 顯示死進程(dead processes) | |
-H | 顯示各欄位元的標題資訊列 | |
-r |
顯示 runlevel | |
-q | 顯示登入用戶和人數 | |
-w 或 -T | 顯示使用者的資訊狀態列 | |
i am | 顯示自己的登入資訊 |
$ who -q ←顯示登入用戶和人數 root alice frank austin #user=4 $ who -r ←顯示 runlevel run-level 5 2016-06-13 05:20 $ who -b ←顯示最後開機時間 system boot 2016-06-11 05:20 $ who i am ←顯示自己的登入資訊 alice pts/0 2016-06-13 05:21 (:0) |
$ w 17:22:40 up 1:16, 5 users, load average: 0.06, 0.12, 0.08 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - 16:07 3:59 0.06s 0.00s vi john tty2 - 16:37 38.00s 0.07s 0.01s man consolehelp peter tty4 - 16:37 38.00s 0.07s 0.01s -bash |
語法:id [-otpiton][--option] [USER_NAME] | ||
指令名稱/功能/命令使用者 | 選項 | 功能 |
lastlog/(last login)帳號登錄查詢 / Any |
-b DAYS | 顯示從目前算起早於 DYAS 之前的登人者 |
-t DAYS | 顯示從目前算起 DYAS 天內的登人者 | |
--u USER | 只顯示指定的帳號 | |
--help | 指令自帶說明 |
$ lastlog -b 30 ←顯示 30 天前有誰登入 $ lastlog -t 7 ←顯示一星期內有誰登入 $ lastlog -u leona ←只顯示帳號〝leona〞上次的登入時間 |
$ cat ~john/.forward aaa@localhost ←要轉寄的 email john@localhost ←轉寄一份給自己(如自己要保留,因系統不會保留轉寄的 email) |