6.53. Shadow-4.1.4.2

Shadow パッケージはセキュアなパスワード管理を行うプログラムを提供します。

概算ビルド時間: 0.3 SBU
必要ディスク容量: 30 MB

6.53.1. Shadow のインストール

[注記]

注記

もっと強力なパスワードを利用したい場合は http://www.linuxfromscratch.org/blfs/view/svn/postlfs/cracklib.html にて示している Cracklib パッケージを参照してください。 Cracklib パッケージは Shadow パッケージよりも前にインストールします。 その場合 Shadow パッケージの configure スクリプトでは --with-libcrack パラメータをつけて実行する必要があります。

groups コマンドとその man ページをインストールしないようにします。 これは Coreutils パッケージにて、より良いバージョンが提供されているからです。

sed -i 's/groups$(EXEEXT) //' src/Makefile.in
find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \;

中国語と韓国語の man ページはインストールしません。 Man-DB がそれらを正しく扱うことができないためです。

sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile.in

パスワード暗号化に関して、デフォルトの crypt 手法ではなく、より強力な MD5 手法を用いることにします。 こうしておくと 8文字以上のパスワード入力が可能となります。 またメールボックスを収めるディレクトリとして Shadow ではデフォルトで /var/spool/mail ディレクトリを利用していますが、これは古いものであるため /var/mail ディレクトリに変更します。

sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD MD5@' \
       -e 's@/var/spool/mail@/var/mail@' etc/login.defs
[注記]

注記

Cracklib のサポートを含めて Shadow をビルドする場合は以下を実行します。

sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' \
    etc/login.defs

Shadow をコンパイルするための準備をします。

./configure --sysconfdir=/etc

パッケージをコンパイルします。

make

このパッケージにテストスイートはありません。

パッケージをインストールします。

make install

不適切なディレクトリにインストールされるプログラムを移動させます。

mv -v /usr/bin/passwd /bin

6.53.2. Shadow の構成

このパッケージには、ユーザーやグループの追加・修正・削除、そのパスワードの設定・変更、その他の管理操作を行うユーティリティが含まれます。 パスワードのシャドウイング (password shadowing) というものが何を意味するのか、その詳細についてはこのパッケージのソース内にある doc/HOWTO を参照してください。 Shadow によるサポートを利用する場合、パスワード認証を必要とするプログラム (ディスプレイマネージャ、FTP プログラム、POP3、デーモン、など) は Shadow に準拠したものでなければなりません。 つまりそれらのプログラムが、シャドウ化された (shadowed) パスワードを受け入れて動作しなければならないということです。

Shadow によるパスワードの利用を有効にするために、以下のコマンドを実行します。

pwconv

また Shadow によるグループパスワードを有効にするために、以下を実行します。

grpconv

Shadow の useradd コマンドに対する通常の設定には、注意すべき点があります。 まず useradd コマンドによりユーザーを生成する場合のデフォルトの動作では、ユーザー名と同じグループを自動生成します。 ユーザーID (UID) とグループID (GID) は 1000 以上が割り当てられます。 useradd コマンドの利用時に特にパラメータを与えなければ、追加するユーザーのグループは新たな固有グループが生成されることになります。 この動作が不適当であれば useradd コマンドの実行時に -g パラメータを利用することが必要です。 デフォルトで適用されるパラメータは /etc/default/useradd ファイルに定義されています。 このファイルのパラメータ定義を必要に応じて書き換えてください。

/etc/default/useradd のパラメータ説明

GROUP=1000

このパラメータは /etc/group ファイルにて設定されるグループIDの先頭番号を指定します。 必要なら任意の数値に設定することもできます。 useradd コマンドは既存の UID 値、GID 値を再利用することはありません。 このパラメータによって定義された数値が実際に指定された場合、この値以降で利用可能な値が利用されます。 また useradd コマンドの実行時に、パラメータ -g を利用せず、かつグループID 1000 のグループが存在していなかった場合は、以下のようなメッセージが出力されます。 useradd: unknown GID 1000 ("GID 1000 が不明です") このメッセージは無視することができます。 この場合グループIDには 1000 が利用されます。

CREATE_MAIL_SPOOL=yes

このパラメータは useradd コマンドの実行によって、追加されるユーザー用のメールボックスに関するファイルが生成されます。 useradd コマンドは、このファイルのグループ所有者を mail (グループID 0660) に設定します。 メールボックスに関するファイルを生成したくない場合は、以下のコマンドを実行します。

sed -i 's/yes/no/' /etc/default/useradd

6.53.3. root パスワードの設定

root ユーザーのパスワードを設定します。

passwd root

6.53.4. Shadow の構成

インストールプログラム: chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, lastlog, login, logoutd, newgrp, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (newgrp へのリンク), su, useradd, userdel, usermod, vigr (vipw へのリンク), vipw

概略説明

chage

ユーザーのパスワード変更を行うべき期間を変更します。

chfn

ユーザーのフルネームや他の情報を変更します。

chgpasswd

グループのパスワードをバッチモードにて更新します。

chpasswd

ユーザーのパスワードをバッチモードにて更新します。

chsh

ユーザーのデフォルトのログインシェルを変更します。

expiry

現時点でのパスワード失効に関する設定をチェックし更新します。

faillog

ログイン失敗のログを調査します。 ログインの失敗を繰り返すことでアカウントがロックされる際の、最大の失敗回数を設定します。 またその失敗回数をリセットします。

gpasswd

グループに対してメンバーや管理者を追加・削除します。

groupadd

指定した名前でグループを生成します。

groupdel

指定された名前のグループを削除します。

groupmems

スーパーユーザー権限を持たなくても、自分自身のグループのメンバーリストを管理可能とします。

groupmod

指定されたグループの名前や GID を修正します。

grpck

グループファイル /etc/group/etc/gshadow の整合性を確認します。

grpconv

通常のグループファイルから Shadow グループファイルを生成・更新します。

grpunconv

/etc/gshadow ファイルを元に /etc/group ファイルを更新し /etc/gshadow ファイルを削除します。

lastlog

全ユーザーの中での最新ログインの情報、または指定ユーザーの最新ログインの情報を表示します。

login

ユーザーのログインを行います。

logoutd

ログオン時間とポートに対する制限を実施するためのデーモン。

newgrp

ログインセッション中に現在の GID を変更します。

newusers

ユーザーアカウントの情報を生成または更新します。

nologin

ユーザーアカウントが利用不能であることをメッセージ表示します。 利用不能なユーザーアカウントに対するデフォルトシェルとして利用することを意図しています。

passwd

ユーザーアカウントまたはグループアカウントに対するパスワードを変更します。

pwck

パスワードファイル /etc/passwd/etc/shadow の整合性を確認します。

pwconv

通常のパスワードファイルを元に shadow パスワードファイルを生成・更新します。

pwunconv

/etc/shadow ファイルを元に /etc/passwd ファイルを更新し /etc/shadow を削除します。

sg

ユーザーの GID を指定されたグループにセットした上で、指定されたコマンドを実行します。

su

ユーザー ID とグループ ID を変更してシェルを実行します。

useradd

指定した名前で新たなユーザーを生成します。 あるいは新規ユーザーのデフォルトの情報を更新します。

userdel

指定されたユーザーアカウントを削除します。

usermod

指定されたユーザーのログイン名、UID (User Identification)、利用シェル、初期グループ、ホームディレクトリなどを変更します。

vigr

/etc/group ファイル、あるいは /etc/gshadow ファイルを編集します。

vipw

/etc/passwd ファイル、あるいは /etc/shadow ファイルを編集します。