14.3. アカウント情報の管理

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

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

14.3.1. adduser

adduser(8) は、 新しいユーザを登録するためのシンプルなプログラムです。 ユーザを追加すると、 このプログラムは、/etc/passwd/etc/group を自動的に更新します。 また、新規ユーザのホームディレクトリを作成し、 /usr/share/skel から、デフォルトで使用される設定ファイルをコピーします。 また、新しく作成されたユーザに対して、 ウェルカムメッセージをメールで送信することも可能です。

例14.2 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.3.2. rmuser

システムから完全にユーザを削除するには、 rmuser(8) を使います。 このコマンドは、次の手順を実行します。

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

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

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

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

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

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

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

  8. そして最後に、 /etc/group にある すべてのグループから、指定されたユーザを削除します。

    注記:

    指定されたユーザと同じ名前のグループで、 そのユーザが削除されると空のグループとなる場合は、 そのグループ自体が削除されます。 これは adduser(8) によってユーザごとに作成される、 ユニークなグループに対応するものです。

スーパユーザアカウントの削除に rmuser(8) を利用することはできません。 スーパユーザアカウントの削除はほとんどすべての場合、 大規模なシステムの破壊を意味するからです。

デフォルトでは、以下の例のような対話モードが使われます。

例14.3 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.3.3. chpass

chpass(1) を用いて、 パスワード、シェル、その他の個人情報といった、 ユーザデータベース情報を変更できます。

スーパユーザ権限に限り、 chpass(1) を用い、 他のユーザの情報やパスワードを変更できます。

ユーザ名の他にオプションを指定しないと、 chpass(1) はユーザ情報を編集するエディタを表示します。 ユーザがエディタを終了すると、 ユーザデータベースが新しい情報に更新されます。

注記:

スーパユーザでない場合は、 エディタを抜けた後にパスワードを聞かれます。

例14.4 スーパユーザによる対話的な 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.5 通常のユーザによる対話的な 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 の設定については、 で説明されています。

14.3.4. passwd

passwd(1) は、 ユーザが自分のパスワードを変更する通常の方法です。 スーパユーザ権限では、 他のユーザのパスワードを変更するのに使われます。

注記:

誤って、または不正なパスワードの変更を避けるため、 新しいパスワードを設定する前に、 もとのパスワードを入力しなければなりません。 スーパーユーザの権限でユーザのパスワードを変更する際には、 もとのパスワードを入力する必要はありません。

例14.6 自分のパスワードの変更
% passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done

例14.7 スーパーユーザ権限での他のユーザのパスワード変更
# 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.3.5. pw

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

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

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

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。