pw 是一個強力且可彈性的更改帳號的 方法,但是建議用 adduser 來新增帳號, 用 rmuser 來刪除帳號。
chpass 讓系統管理員和一般使用者皆可 調整密碼,shells,和個人資料。另外 passwd 是比較普遍用來更改密碼的方法。
adduser 是一個簡單的程式用來新增帳號。 它為使用者建立 passwd 和 group 的記錄,也建立他們的家目錄,從 /usr/share/skel 複製一些預設的設定檔,也可自由選擇地寄給使用者歡迎訊息。
要建立初始的設定檔,請用 adduser -s -config_create. [1]接下來,我們設定 adduser 預設值,建立第一個使用者帳號, 因為用 root 來做一般的用途是有害且危險的。
Example 6-1. 更改 adduser 的設定
# adduser -v
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh [sh]: tcsh
Your default shell is: tcsh -> /usr/local/bin/tcsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your changes to /etc/adduser.conf? (y/n) [n]: y
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh [tcsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Login group is ``jru''. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:
Name: jru
Password: ****
Fullname: J. Random User
Uid: 1007
Gid: 1007 (jru)
Class:
Groups: jru wheel
HOME: /home/jru
Shell: /usr/local/bin/tcsh
OK? (y/n) [y]: y
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
#簡單來說,我們變更預設 shell 為 tcsh, 關掉送出歡迎信給新增的使用者。接著我們儲存了設定值,並且為 jru 新增了一個帳號,確定 jru 屬於 wheel 群組(之後我們將發現這很重要)。
Note: 你鍵入的密碼並沒有顯示出來,也沒有星星顯示出來。 請確定你兩次都沒有打錯密碼:)
Note: 從今天起請用 adduser 不加上任何參數, 也不用執行一次變更預設值了。如果程式要求你變更預設值,請離開程式, 並試試看 -s 的參數。
rmuser 從系統中刪除帳號,包括使用者 資料庫中的任何記錄。
rmuser 執行下列步驟:
刪除使用者的 crontab(1) 記錄 (如果有的話)。
刪除所有屬於此使用者的 at(1) 工作。
中止所有此使用者擁有的行程。
從系統密碼檔中刪除使用者資料。
刪除此使用者的家目錄 (如果是此使用者所擁有的話)。
刪除 /var/mail 之下屬於此使用者的信件。
刪除暫存區中所有此使用者擁有的檔案,例如 /tmp。
最後,刪除 /etc/group 之中所有此使用者 所屬的群組的帳號。
Note: 如果某群組變成空的且群族名稱和帳號名稱相同,則此群組也將 被移除;這補足了那些由 adduser(8) 為個別使用者建立的 單獨群組。
rmuser 不能用來刪除超級使用者帳號, 因為這表示了一個嚴重的破壞行為。
預設使用互動模式,這將確認你知道你正在做什麼。
Example 6-2. rmuser 帳號刪除互動過程
# rmuser jru
Matching password entry:
jru:*:1000:1000::0:0:J. Random User:/home/jru:/usr/local/bin/tcsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
#pw 是一個命令列工具,用來 建立,刪除,修改,以及顯示使用者和群組,並當成系統用戶檔 及群組檔的編輯器。
它是被設計來不論對直接執行命令列或者放在 shell script 裡面都很有用。
pw(8) 有所有的資訊。
chpass 更改使用者資料例如密碼, shells,和個人資訊等。
只有系統管理員,例如超級使用者,可以用 chpass 更改其他 使用者的資料或密碼。
不加任何參數,除了可有可無的帳號名稱, chpass 顯示一個內含使用者資訊的編輯器, 並在離開編輯器時,更改使用者資料庫中的資訊。
Example 6-3. 超級使用者互動式 chpass
#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1000
Gid [# or name]: 1000
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/tcsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:一般的使用者只能更改他們自己的一小部分資訊。
Example 6-4. 一般使用者互動式 chpass
#Changing user database information for jru.
Shell: /usr/local/bin/tcsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:Note: chfn 和 chsh 就像 chpass,以及 ypchpass,ypchfn, 和 ypchsh。自動支援 NIS,所以命令前不需要加上 yp。
passwd 是一個常用的工具,讓一般使用者 更改自己的密碼,或者讓超級使用者更改其他使用者的密碼。
Note: 修改密碼以前,使用者必須輸入他們原先的密碼,以避免未經授權的 人在使用者離開控制台時更改使用者的密碼。
Example 6-5. passwd
% passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done
# passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneNote: yppasswd 連結到 passwd。 自動支援 NIS,所以在命令前不需要加上yp。
| [1] | 參數 -s 使得 adduser 預設變得安靜。 我們之後可以用 -v 如果想改變預設值時。 |