3.4. コマンドラインツールを使用したユーザーの管理
コマンドラインでユーザーを管理する場合は、useradd、usermod、userdel、または passwd のコマンドが使用されます。影響を受けるファイルには、ユーザーアカウント情報を格納する
/etc/passwd
と、セキュアなユーザーアカウント情報を格納する /etc/shadow
が含まれます。
3.4.1. ユーザーの作成
useradd ユーティリティーは、新しいユーザーを作成して、システムに追加します。以下の短い手順に従って、UID でデフォルトのユーザーアカウントを作成し、デフォルトユーザー設定を保存するホームディレクトリー(
/home/username/
)を作成し、デフォルトのシェルを /bin/bash に設定します。
- ユーザー 名を任意の名前で置き換える
root
として、シェルプロンプトで以下のコマンドを実行します。useradd username
- パスワードのロック解除を行い、アカウントのロックを解除します。プログラムが要求されたら、パスワードを 2 回入力します。
passwd
例3.1 デフォルト設定を使用したユーザーの作成
~]# useradd robert ~]# passwd robert Changing password for user robert New password: Re-type new password: passwd: all authentication tokens updated successfully.
useradd robert コマンドを実行すると、
robert
という名前のアカウントが作成されます。cat /etc/passwd を実行して /etc/passwd
ファイルの内容を表示する場合は、表示された行から新規ユーザーの詳細を確認できます。
robert:x:502:502::/home/robert:/bin/bash
robert
には 502 という UID が割り当てられました。これは、0 から 499 までのデフォルトの UID 値がシステムアカウント用に予約されるルールを反映しています。GID、User Private Group
のグループ ID は UID に等しくなります。ホームディレクトリーは /home/robert
に、ログインシェルを /bin/bash
に設定します。X の文字 は
、シャドウパスワードが使用され、ハッシュ化されたパスワードが /etc/shadow
に保存されることを示唆します。
アカウントの作成時にユーザーの基本デフォルト設定を変更する場合は、useradd の動作を変更するコマンドラインオプションのリストから選択できます(オプションの一覧は、man ページの useradd(8)を参照してください)。コマンドの基本的な構文で分かるように、オプションを 1 つ以上追加できます。
useradd [option(s)] username
システム管理者は、
-c
オプションを使用して、作成時にユーザーのフルネームなどを指定できます。-c
の後に文字列を付けて、ユーザーにコメントを追加します。
useradd -c "string" username
例3.2 ユーザー作成時のユーザーのフルネームの指定
~]# useradd -c "Robert Smith" robert ~]# cat /etc/passwd robert:x:502:502:Robert Smith:/home/robert:/bin/bash
ユーザー名
robert
でユーザーアカウントが作成されている。ログイン名およびフルネーム Robert Smith で作成されていること。
ユーザーアカウントにデフォルトの
/home/ ユーザー名/
ディレクトリーを作成したくない場合は、その代わりに別のユーザー名を設定します。以下のコマンドを実行します。
useradd -d home_directory
例3.3 デフォルト以外のホームディレクトリーでのユーザーの追加
~]# useradd -d /home/dir_1 robert
robert
のホームディレクトリーはデフォルトの /home/robert
ではなく、/home/dir_1/ です
。
ユーザーのホームディレクトリーを作成したくない場合は、useradd に
-M
オプションを指定して実行できます。ただし、このようなユーザーが起動したばかりのシステムにログインし、ホームディレクトリーが存在しない場合は、ログインディレクトリーは root ディレクトリーになります。このようなユーザーが su コマンドを使用してシステムにログインすると、ログインディレクトリーは以前のユーザーの現在のディレクトリーになります。
useradd -M username
新規ユーザーの作成時にディレクトリーコンテンツを
/home
ディレクトリーにコピーする必要がある場合は、-m
オプションと -k
オプションの後にパスを指定して実行します。
例3.4 ホームディレクトリーへのコンテンツのコピー時のユーザーの作成
以下のコマンドは、
/dir_1
という名前のディレクトリーの内容を /home/jane
にコピーします。これは、新しいユーザー jane
のデフォルトのホームディレクトリーです。
~]# useradd -m -k /dir_1 jane
システム管理者は、一時的なアカウントを作成する必要がある場合があります。useradd コマンドを使用すると、特定の期間だけアカウントを作成し、特定日に無効にすることができます。特定のアカウントの削除にセキュリティー上のリスクがあるため、これは特に便利な設定です。このため、
-e
オプションは、YYYY-MM-DD 形式で指定された expire_date とともに使用されます。
注記
アカウントの有効期限とパスワードの有効期限を混同しないようにしてください。アカウントの有効期限は特定の日付で、アカウントが存在しなくなったため、アカウントにログインできなくなります。パスワードの有効期限、パスワード作成またはパスワード変更の最大有効期間と日付は、パスワードを使用してログインできない場合は日付になります(ただし、SSH キーを使用してログインする場合など)。
useradd -e YYYY-MM-DD username
例3.5 アカウントの有効期限の設定
~]# useradd -e 2015-11-05 emily
このアカウントは今後作成され、2015 年 11 月 5 日に自動的に無効になります。
ユーザーのログインシェルのデフォルトは
/bin/bash
ですが、-s
オプションで bash、ksh、csh、tsh とは異なるシェルに変更できます。
useradd -s login_shell username
例3.6 デフォルト以外のシェルでユーザーの追加
~]# useradd -s /bin/ksh robert
このコマンドは、
/bin/ksh
シェルを持つ robert
ユーザーを作成します。
-r
オプションは、一部の root 権限ではなく、管理者が使用するアカウントとなるシステムアカウントを作成します。このようなアカウントは、/etc/login.defs
で定義された UID_MIN の値よりも低い値を持ちます(通常は通常のユーザーの場合 500 以上)。
useradd -r username