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: done
Note: yppasswd 連結到 passwd。 自動支援 NIS,所以在命令前不需要加上yp。
[1] | 參數 -s 使得 adduser 預設變得安靜。 我們之後可以用 -v 如果想改變預設值時。 |