14.6. アカウント情報の変更

UNIX® 環境では、 ユーザアカウントを操作するのにさまざまなコマンドが使えます。 もっとも一般的なコマンドを以下に示し、 それに続いて詳しい使用例を示します。

コマンド 要約
adduser(8) コマンドラインからユーザを追加するための推奨アプリケーション
rmuser(8) コマンドラインからユーザを削除するための推奨アプリケーション
chpass(1) ユーザデータベースの情報を変更するための柔軟なツール
passwd(1) ユーザのパスワードを変更する簡単なコマンドラインツール
pw(8) ユーザアカウントのあらゆる箇所を変更する強力で柔軟なツール

14.6.1. adduser

adduser(8) は、 新しいユーザを登録するためのシンプルなプログラムです。 このプログラムは、システムの passwdgroup ファイルに新しい項目を作成します。 また、新規ユーザのホームディレクトリを作成し、 /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!
#

注意: 入力したパスワードは画面に表示されません。 アスタリスク記号も表示されませんので、 パスワードを間違えて入力してしまわないように注意してください。

14.6.2. rmuser

rmuser(8) を使えば、 システムから完全にユーザを削除できます。 rmuser(8) は、次の手順を実行します。

  1. 指定されたユーザの crontab(1) エントリを削除 (存在する場合)。

  2. 指定されたユーザの at(1) ジョブをすべて削除。

  3. 指定されたユーザが所有するすべてのプロセスを強制終了。

  4. ローカルパスワードファイルから、 指定されたユーザのエントリを削除。

  5. 指定されたユーザのホームディレクトリを削除 (ディレクトリの所有者が指定されたユーザのものだった場合)。

  6. /var/mail から、指定されたユーザの到着メールファイルを削除。

  7. /tmp のような一時ファイル保存領域から、 指定されたユーザの所有するファイルを削除。

  8. そして最後に、 /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.
#

14.6.3. chpass

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:

通常のユーザは、この情報の限られた部分のみ変更が可能です。 また、変更できるのはそのユーザ自身の情報のみです。

例 14-4. 通常のユーザによる対話的な chpass

#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

注意: chfn(1), chsh(1) はいずれも、単に chpass(1) へのハードリンクになっています。 また、ypchpass(1), ypchfn(1) および ypchsh(1) も同様です。 NIS のサポートは自動的に行なわれますので、 コマンドの先頭に yp をつける必要はありません。 もし、混乱しても心配しないでください。 NIS については、第22章 で説明されています。

14.6.4. passwd

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 はどちらのコマンドでも動作します。

14.6.5. pw

pw(8) は、ユーザやグループの作成、削除、 変更および表示を行なうコマンドラインのユーティリティです。 これは、システムユーザファイルやシステムグループファイルの フロントエンドとして働きます。pw(8) はとても強力な一連のコマンドラインオプションを有しており、 シェルスクリプトで使うのに向いていますが、新しいユーザは、 ここで紹介されている他のコマンドに比べて難しいと感じるかもしれません。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。