UNIX® 環境では、 ユーザアカウントを操作するのにさまざまなコマンドが使えます。 もっとも一般的なコマンドを以下に示し、 それに続いて詳しい使用例を示します。
コマンド | 要約 |
---|---|
adduser(8) | コマンドラインからユーザを追加するための推奨アプリケーション |
rmuser(8) | コマンドラインからユーザを削除するための推奨アプリケーション |
chpass(1) | ユーザデータベースの情報を変更するための柔軟なツール |
passwd(1) | ユーザのパスワードを変更する簡単なコマンドラインツール |
pw(8) | ユーザアカウントのあらゆる箇所を変更する強力で柔軟なツール |
adduser(8) は、 新しいユーザを登録するためのシンプルなプログラムです。 このプログラムは、システムの passwd と group ファイルに新しい項目を作成します。 また、新規ユーザのホームディレクトリを作成し、 /usr/share/skel から、デフォルトで使用される設定ファイル (“ドットファイル”) をコピーします。また、新しく作成されたユーザに対して、 ウェルカムメッセージをメールで送信することも可能です。
例 14-1. FreeBSD におけるユーザの追加
# adduser Username: jru Full name: J. Random User Uid (Leave empty for default): Login group [jru]: Login group is jru. Invite jru into other groups? []: wheel Login class [default]: Shell (sh csh tcsh zsh nologin) [sh]: zsh Home directory [/home/jru]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : jru Password : **** Full Name : J. Random User Uid : 1001 Class : Groups : jru wheel Home : /home/jru Shell : /usr/local/bin/zsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (jru) to the user database. Add another user? (yes/no): no Goodbye! #
注意: 入力したパスワードは画面に表示されません。 アスタリスク記号も表示されませんので、 パスワードを間違えて入力してしまわないように注意してください。
rmuser(8) を使えば、 システムから完全にユーザを削除できます。 rmuser(8) は、次の手順を実行します。
指定されたユーザの crontab(1) エントリを削除 (存在する場合)。
指定されたユーザの at(1) ジョブをすべて削除。
指定されたユーザが所有するすべてのプロセスを強制終了。
ローカルパスワードファイルから、 指定されたユーザのエントリを削除。
指定されたユーザのホームディレクトリを削除 (ディレクトリの所有者が指定されたユーザのものだった場合)。
/var/mail から、指定されたユーザの到着メールファイルを削除。
/tmp のような一時ファイル保存領域から、 指定されたユーザの所有するファイルを削除。
そして最後に、 /etc/group にある すべてのグループから、指定されたユーザを削除します。
注意: 指定されたユーザと同じ名前のグループで、 そのユーザが削除されると空のグループとなる場合は、 そのグループ自体が削除されます。 これは adduser(8) によってユーザごとに作成される、 ユニークなグループに対応するものです。
スーパユーザアカウントの削除に rmuser(8) を利用することはできません。 スーパユーザアカウントの削除はほとんどすべての場合、 大規模なシステムの破壊を意味するからです。
デフォルトでは、 どういう操作を行なっているか確認できる対話モードが使われます。
例 14-2. rmuser による対話的なアカウントの削除
# rmuser jru Matching password entry: jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh 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. #
chpass(1) は、 パスワード、シェル、その他の個人情報といった、 ユーザデータベース情報を変更します。
システム管理者に限りスーパユーザ権限で chpass(1) を用い、 他のユーザの情報やパスワードを変更できます。
ユーザ名の他にオプションを指定しないと、 chpass(1) はユーザ情報を編集するエディタを表示します。 ユーザがエディタを終了すると、 ユーザデータベースが新しい情報に更新されます。
注意: スーパユーザでない場合は、 エディタを抜けた後にパスワードを聞かれます。
例 14-3. スーパユーザによる対話的な chpass
#Changing user database information for jru. Login: jru Password: * Uid [#]: 1001 Gid [# or name]: 1001 Change [month day year]: Expire [month day year]: Class: Home directory: /home/jru Shell: /usr/local/bin/zsh Full Name: J. Random User Office Location: Office Phone: Home Phone: Other information:
通常のユーザは、この情報の限られた部分のみ変更が可能です。 また、変更できるのはそのユーザ自身の情報のみです。
passwd(1) は、 ユーザが自分のパスワードを変更する通常の方法です。 スーパユーザ権限では、 他のユーザのパスワードを変更するのに使われます。
注意: 誤って、または不正なパスワードの変更を避けるため、 新しいパスワードを設定する前に、 もとのパスワードを入力しなければなりません。
例 14-5. 自分のパスワードの変更
% passwd Changing local password for jru. Old password: New password: Retype new password: passwd: updating the database... passwd: done
例 14-6. スーパーユーザ権限での他のユーザのパスワード変更
# passwd jru Changing local password for jru. New password: Retype new password: passwd: updating the database... passwd: done
注意: chpass(1) 同様、yppasswd(1) は、単に passwd(1) へのハードリンクになっていますので、 NIS はどちらのコマンドでも動作します。
pw(8) は、ユーザやグループの作成、削除、 変更および表示を行なうコマンドラインのユーティリティです。 これは、システムユーザファイルやシステムグループファイルの フロントエンドとして働きます。pw(8) はとても強力な一連のコマンドラインオプションを有しており、 シェルスクリプトで使うのに向いていますが、新しいユーザは、 ここで紹介されている他のコマンドに比べて難しいと感じるかもしれません。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <[email protected]> まで (英語で)
連絡してください。
本文書に関する質問については、<[email protected]> まで電子メールを (英語で)
送ってください。