35.5. コマンドラインの設定

コマンドラインツールの方が使いやすい場合、 あるいは X Window System がインストールされていない場合、 この章の内容を使用してユーザーとグループの設定を行なってください。

35.5.1. ユーザーの追加

システムにユーザーを追加するには、以下のようにします。

  1. useraddコマンドを発行してロックされたユーザーアカウントを作成します。

    useradd <username>
  2. passwdコマンドでパスワードを入れ、 パスワードの時効ガイドラインを設定して、アカウントをアンロックします。

    passwd <username>

useradd用のコマンドラインオプションは 表35-1に詳細があります。

オプション説明
-c コメントユーザー用コメント
-d ホームディレクトリデフォルトの/home/ユーザー名の代わりに使用するホームディレクトリ
-e 日付アカウントが無効になる日付をYYYY-MM-DD形式で設定
-f 日数パスワードが失効になってからアカウントが無効になるまでの日数。 (0が指定されると、 パスワードの失効直後にアカウントが無効になります。 -1が指定されると、 パスワード失効後もアカウントは無効になりません。)
-gグループ名ユーザーのデフォルトグループ用のグループ名、又はグループ番号 (グループはここで指定する前に既に存在している必要があります)。
-G グループリストユーザーがメンバーになっている追加の(デフォルト以外の)グループ名、又はグループ番号が、 カンマで区切られている一覧(グループはここで指定する前に既に存在している必要があります)。
-mホームディレクトリがない場合は、それを作成する。
-Mホームディレクトリを作成しない。
-nユーザー用プライベートグループを作成しない。
-r500以下のUIDで、ホームディレクトリのないシステムアカウントを作成する。
-p パスワードcryptコマンドで暗号化されたパスワード
-s/bin/bashがデフォルトのユーザーログインシェル
-u uidユーザー用のユーザーID、ユーザー固有で499以上でなければならない

表 35-1. useraddのコマンドラインオプション

35.5.2. グループの追加

システムにグループを追加するには、groupaddコマンドを使用します。

groupadd <group-name>

groupadd用のコマンドラインオプションは表35-2に詳細があります。

オプション説明
-g グループIDグループ用のグループID、グループ固有で499以上でなければならない
-r500以下のGIDでシステムグループを作成する
-fグループが既に存在する場合は、エラーで終了(グループは変更されません)。 -g-fが指定されているが、 そのグループは既に存在する場合には、-gオプションは無視されます。

表 35-2. groupaddコマンドラインオプション

35.5.3. パスワードの時効

セキュリティの見地から、ユーザーに定期的にパスワードを変更させるようにすることが良策です。 これはユーザーマネージャパスワード情報 タブでユーザーの追加や編集をするときに設定することができます。

シェルプロンプトからユーザーのパスワード失効日を設定するには、chage コマンドを使用し、続けて表35-3にあるオプションの1つとそのユーザーのユーザー名を入力します。

誓要項目重要
 

chageコマンドを使用するには、 シャドウパスワードが有効になっている必要があります。

オプション説明
-m 日数ユーザーがパスワードを変更する必要が出る最低期間を日数で指定。 値が0の場合はパスワードは失効になりません。
-M 日数パスワードが有効である最大期間を日数で指定。 このオプションで指定した日数と-d オプションで指定したオプションの合計が現在の日より小さい場合、 ユーザーはアカウントを使用する前に自己のパスワードを変更する必要があります。
-d 日数パスワードが変更される時期を1970年1月1日からの日数で指定します。
-I 日数パスワード失効からアカウントロックまでの無活動の期間を日数で指定。 値が0の場合は、パスワード失効の後でもアカウントはロックされません。
-E 日付YYYY-MM-DD形式で、アカウントがロックされる日付を指定。日付の代わりに 1970年1月1日からの日数でも使用可能。
-W 日数パスワードの失効日前にユーザーに警告する日数を指定。

表 35-3. chage コマンドラインオプション

ティップヒント
 

chageコマンドのすぐ後に、ユーザー名(オプションなし)があれば、 現在のパスワード時効の値を表示し、変更を可能にします。

システム管理者がユーザーに最初のログインでパスワードを設定するようにさせたい場合には、 ユーザーの最初のパスワードまたは空パスワードを直ちに失効するよう設定することができます。 これにより、ユーザーが最初のログイン直後にパスワードを変更させるよう強制します。

最初のログイン後に、ユーザーにコンソールでパスワードを設定させる場合は、 以下のステップに従って下さい。SSHプロトコルでユーザーがログインをしている 場合は、このプロセスは実行できないことに注意して下さい。

  1. ユーザーパスワードをロックする — ユーザーが存在 しない場合、useraddコマンドを使用して、ユーザー アカウントを作成します。しかし、パスワードは与えないでロックされた ままにしておきます。

    パスワードがすでに有効になっている場合は、次のコマンドでそれを ロックします:

    usermod -L username
  2. すぐにパスワード失効を強制する — 次のコマンドを入力します:

    chage -d 0 username

    このコマンドは最後にパスワードが変更された期日の値をエポック(1970年1月1日)に セットします。パスワードの時効ポリシーに関係なく、この値が即時にパスワードの 失効を強制します。

  3. アカウントをアンロック —2つのアプローチが このステップにあります。管理者は、初期パスワードを割り当てるか、又は 無効なパスワードを割り当てます。

    警告警告
     

    passwdコマンドは、設定したばかりのパスワード失効を無効に しますので、passwdコマンドを使用したパスワードの 設定はしないで下さい。

    初期パスワードを割り当てるには、以下のステップに従います:

    • pythonコマンドでコマンドラインpython インタプリタを開始します。以下が表示されます:

      Python 2.2.2 (#1, Dec 10 2002, 09:57:09)
      [GCC 3.2.1 20021207 (Red Hat Enterprise Linux 3 3.2.1-2)] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>>
    • プロンプトで、以下を入力します(passwordには、 暗号化するパスワードで入れ換え、そしてsaltには ab12の 様にちょうど2つの大文字、又は小文字の英文字、数字、ドット(.)記号、スラッシュ(/) 記号等の組合せで入れ換えます):

      import crypt; print crypt.crypt("password","salt")

      その出力は、12CsGd8FRcMSMのような 暗号化されたパスワードになります。

    • [Ctrl]-[D]を押して、Pythonインタプリタを 終了します。

    • 前後に空白のない状態で、カットアンドペーストで暗号化したパスワード出力をそのまま 次ぎのコマンドに張り付けます:

      usermod -p "encrypted-password" username

    初期パスワードを割り当てる代わりに、以下のコマンドで 無効なパスワードを割り当てることもできます:

    usermod -p "" username

    注意用心
     

    無効なパスワードを使用するのは、ユーザーにとっても管理者にとっても 便利なことですが、第三者が最初にログインしてシステムにアクセスすると 言うリスクが少々あります。このような脅威を最小限に保つには、管理者は アカウントがアンロックされる時点でユーザーがログインの準備が出来て いるかを確認することが推奨されます。

    どちらの場合も、初期ログインでユーザーは新しいパスワードを 要求されます。