/usr/sbin/userdel
ユーザーアカウントと関連ファイルを削除する
SYNOPSIS
- userdel [options] LOGIN
DESCRIPTION
userdel はユーザを削除するための低レベルのユーティリティである。Debian では、管理者は通常、代わりに deluser を使用すべきである。
userdel コマンドは、システムアカウントファイルを変更し、ユーザ名 LOGIN を参照しているすべてのエントリを削除する。指定されたユーザは存在しなければならない。
OPTIONS
userdel コマンドに適用するオプション。
- -f, --force
- このオプションは、ユーザがまだログインしている場合でも、そのユーザ・アカウントを強制的に削除する。また、他のユーザが同じホームディレクトリを使用していたり、メールスプールが指定されたユーザの所有でない場合でも、userdel はそのユーザのホームディレクトリとメールスプールを強制的に削除する。USERGROUPS_ENAB が /etc/login.defs で yes に定義されていて、削除されたユーザと同じ名前のグループが存在する場合、そのグループがまだ他のユーザの主グループであったとしても、削除される。
- 注意:このオプションは危険であり、システムに一貫性のない状態を残す可能性がある。
- -h, --help
- ヘルプメッセージを表示し、終了する。
- -r, --remove
- ユーザーのホームディレクトリにあるファイルは、ホームディレクトリそのものと ユーザーのメールスプールとともに削除される。他のファイルシステムにあるファイルは、手動で探して削除する必要がある。
- メールスプールは login.defs ファイル中の MAIL_DIR 変数で定義される。
- -R, --root CHROOT_DIR
- CHROOT_DIR ディレクトリの変更を適用し、CHROOT_DIR ディレクトリの設定ファイルを使用する。
- -P, --prefix PREFIX_DIR
- PREFIX_DIR ディレクトリの変更を適用し、PREFIX_DIR ディレクトリにある設定ファイルを使用する。このオプションは chroot しないので、クロスコンパイルターゲットを準備するためのものである。いくつかの制限事項がある。NIS および LDAP のユーザー/グループは検証されない。PAM認証はホストファイルを使用する。SELINUX をサポートしていない。
- -Z, --selinux-user
- ユーザーのログインに使用するSELinuxユーザーマッピングを削除する。
CONFIGURATION
/etc/login.defsにある以下の設定変数で、このツールの動作が変わる。
- MAIL_DIR (string)
- メールスプールディレクトリである。これは、対応するユーザーアカウントが変更または削除されたときに、メールボックスを操作するために必要である。指定されない場合、コンパイル時のデフォルトが使用される。
- MAIL_FILE (string)
- ユーザのメールスプールファイルの場所を、ユーザのホームディレクトリに 対して相対的に定義する。
- MAX_MEMBERS_PER_GROUP (number)
- グループエントリあたりの最大メンバー数。最大値に達すると、/etc/groupに新しいグループエントリ(行)が開始される(同じ名前、同じパスワード、同じGIDで)。
- デフォルト値は0です。つまり、グループ内のメンバー数に制限はない。
- この機能(split group)は、グループ・ファイルの行の長さを制限することを許可する。これは、NISグループの行が1024文字より大きくないことを確認するのに便利である。
- このような制限を強制する必要がある場合は、25を使用できる。
- 注意:分割グループは、すべてのツールでサポートされていない場合があります(Shadow toolsuite でも)。本当に必要でない限り、この変数を使用するべきではない。
- USERDEL_CMD (string)
- 定義されている場合、このコマンドはユーザーを削除するときに実行されます。これは、削除されるユーザー(最初の引数として渡される)が所有するすべてのat/cron/printジョブなどを削除する必要がある。
- スクリプトのリターンコードは考慮されない。
- 以下は、ユーザーのcron、at、printジョブを削除するスクリプトの例である。
#! /bin/sh
# Check for the required argument.
if [ $# != 1 ]; then
echo "Usage: $0 username"
exit 1
fi
# Remove cron jobs.
crontab -r -u $1
# Remove at jobs.
# Note that it will remove any jobs owned by the same UID,
# even if it was shared by a different username.
AT_SPOOL_DIR=/var/spool/cron/atjobs
find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;
# Remove print jobs.
lprm $1
# All done.
exit 0
- USERGROUPS_ENAB (boolean)
- yesに設定すると、userdelはそのユーザーのグループにメンバーがいなくなった場合に削除し、useraddはデフォルトでそのユーザーの名前のグループを作成する。
FILES
- /etc/group
- グループアカウント情報
- /etc/login.defs
- Shadow password suite configuration.
- /etc/passwd
- ユーザアカウント情報
- /etc/shadow
- セキュアユーザアカウント情報
- /etc/subgid
- ユーザ毎のサブグループID
- /etc/subuid
- ユーザ毎のサブユーザID
EXIT VALUES
userdelコマンドは、次の値を返し終了する。
- 0
- 成功
- 1
- パスワードファイルを更新できない
- 2
- 不正なコマンドシンタックス
- 6
- 指定したユーザが存在しない
- 8
- ユーザが現在ログインしている
- 10
- グループファイルを更新できない
- 12
- ホームディレクトリを削除できない
CAVEATS
userdel は、そのアカウントに属するプロセスが実行されている場合、 そのアカウントを削除することを許可しない。この場合、これらのプロセスを kill するか、ユーザのパスワードやアカウントをロックして、 後でアカウントを削除する必要があるかもしれない。-f オプションは、このアカウントを強制的に削除することができる。
- すべてのファイルシステムを手動でチェックし、このユーザーによって所有されているファイルが残っていないことを確認する必要がある。
- NIS クライアントで NIS 属性を削除することはできない。これは、NIS サーバー上で実行する必要がある。
/etc/login.defs で USERGROUPS_ENAB が yes に定義されている場合、 userdel はそのユーザーと同じ名前のグループを削除する。passwd とグループデータベースの不整合を避けるために、 userdel はこのグループが他のユーザのプライマリグループとして 使われていないことを確認し、そうでない場合はグループを削除せずに警告を出す。-f オプションは、このグループを強制的に削除することができる。
SEE ALSO
chfn, chsh, passwd, login.defs, gpasswd, groupadd, groupdel, groupmod, subgid, subuid, useradd, usermod
External link
この記事は、Debianのmanpageの項目を翻訳一部改変しております。 |