Linuxを使い始めた人,資格試験合格を目指す人を対象に,模擬試験形式でLinuxの基礎を解説します。
問題:次の説明文のA~Dに,適切な語句を入れなさい。 ユーザーの追加は( A )コマンドで行う。標準的なLinuxディストリビューションのインストールでは,シャドウ・パスワードが適用され,暗号化されたパスワードは( B )に記録される。シャドウ化されない場合は( C )に記録されるが,( D )コマンドでシャドウ化できる。 |
ポイント:通常,パスワードは/etc/passwdファイルでなく,/etc/shadowファイルに記録されます。これを「シャドウ・パスワード」と呼びます。管理者しか読めない/etc/shadowにパスワード情報を記録することで安全性を高めています。 キーワード:ユーザー作成,シャドウ・パスワード,useradd,pwconv |
Linuxシステムでは,システムの利用者ごとにユーザー・アカウントを作成します。ユーザーを作成するには,管理者権限で
# useradd ユーザー名 |
を実行します*3。この時点でパスワードの設定は必要ありません*4。作成されたユーザーの情報は,/etc/passwdと/etc/shadowというテキスト・ファイルに記録されます。/etc/passwdにはユーザーのログイン・シェルやホーム・ディレクトリなどの情報が,/etc/shadowにはパスワードの有効期限などが記述されます。
パスワードの設定
ユーザーを追加した直後はパスワードが設定されていません。そのため,ログインできるようにパスワードを設定する必要があります。パスワードは,通常,
# passwd ユーザー名 |
で設定するのが一般的です。変更するときも同じ書式で行えます。
chpasswdコマンドを使用すると,複数ユーザーのパスワードを一括で登録できます(図2)。
![]() |
図2●chpasswdコマンドを使ってパスワードを指定する例 「ユーザー名:パスワード」の形式で記述していく。 [画像のクリックで拡大表示] |
シャドウ・パスワード
/etc/passwdと/etc/shadowには,1行ごとにユーザーごとの情報がまとめられ,「:」で区切ってさまざまな情報が記録されます。各行の先頭にはユーザー名,2つ目にはパスワードが記述されることになっています。ところが,大抵のディストリビューションでは,/etc/shadowに暗号化されたパスワードが記述され,/etc/passwdには「x」とだけ書かれています。
/etc/passwdファイルは,各ユーザーの個人情報が記述されており,誰でも読み出せるようになっています(アクセス権は「rw-r--r--」)。そのため,ここにパスワードを記述すると,他人のパスワードまで見ることができます。以前は,暗号化してパスワードを記述していましたが,セキュリティ上問題があり,現在では管理者しか読み出せない/etc/shadowファイルのみに記録する場合がほとんどです。このことを「シャドウ・パスワード」または「パスワードのシャドウ化」と呼びます。
シャドウ・パスワードを利用したくない場合は,インストール時に詳細設定からオフにすることが可能です(写真1)。インストール後にオフにしたい場合は,pwunconvコマンドを実行し,オンにしたい場合はpwconvコマンドを実行します(図3)。
![]() |
写真1●インストール時にシャドウ・パスワードをオフにできるオプション 写真はFedora Core 5の場合。 [画像のクリックで拡大表示] |
![]() |
図3●ユーザーを作成し,/etc/shadowなどを確認した例 [画像のクリックで拡大表示] |
パスワード・ロック
図3で,ユーザーを追加した直後に/etc/shadowファイルを確認すると,パスワード欄が「!!」となっています。これは一時的にユーザーがログインできない「パスワード・ロック」という状態を指します。
パスワードを設定したり,管理者権限で/etc/shadowをテキスト・エディタで開き,「!!」を削除したりすれば,ログインできるようになります。「!!」を削除した場合は,パスワードなしでログインができます。
パスワード・ロックは,
# passwd -u ユーザー名 |
で解除できます。パスワードを設定していない状態で解除すると,パスワードなしでログインができるようになります。また,「-l」オプションで再びロックをかけられます(図4)。
![]() |
図4●新規ユーザーを作成した直後はパスワード・ロックがかかっている [画像のクリックで拡大表示] |
passwdの代わりにusermodコマンドでも同様のロックをかけられます。この場合は,ロックをかけるオプションは「-L」,解除は「-U」になります。このときは,/etc/shadowのパスワード欄には「!」の1文字だけが記述されます。
いずれの方法も,該当ユーザーはログイン時に正しいパスワードを入力しても,パスワードを間違えた場合と同じ結果になります。
なお,管理者(root)が「# su - ユーザー名」でユーザーを切り替える場合は,パスワードのチェックを行わないため,パスワード・ロックがかかっていてもログインができます。
ユーザーのロック
あるユーザーに対し,明示的にログインできないことを伝える場合は,ログイン・シェルを「/sbin/nologin」に指定します。こうすれば,そのユーザーがログインしても,写真2のように自動的にログアウトされます。
![]() |
写真2●起動シェルに「/sbin/nologin」を指定されたユーザーがログインした例 すぐにログアウトさせられる。 |
設定にはchshコマンドもしくはusermodを利用します。
# chsh -s ログイン・シェル ユーザー名 もしくは # usermod -s ログイン・シェル ユーザー名 |
で指定できます。chshコマンドは一般ユーザーが自身のアカウントをロックするときにも変更できます。また単に,「$ chsh」と実行すれば,対話形式でログイン・シェルを変更できます。
グラフィカル・ログインでなく,CUIベースのログインでは,ロックされていると/etc/nologin.txtファイルの内容が表示されて,ログアウトされます。
パスワードの有効期限
パスワードには,有効期限を設定できます。設定は,useradd,usermod,chageといったコマンドでできます。特にchageコマンドは,対話的に設定できるので便利です(図5)。
![]() |
図5●chageコマンドでパスワードの有効期限など設定できる [画像のクリックで拡大表示] |
パスワードの有効期限を設定して,その期限が過ぎると,ログイン直後にパスワード設定を強制されます(写真3)。
![]() |
写真3●パスワードの有効期限が切れた例 パスワード変更を強要される。 [画像のクリックで拡大表示] |
図5の「パスワード無効日数」を設定すると,パスワードの有効期限後,指定日数を経過するとログインができなくなります。また,「アカウント期限切れ日付」を設定しても同様にログインができなくなります(写真4)。
![]() |
写真4●アカウントの有効期限が切れた例 ログインできない。 [画像のクリックで拡大表示] |
類題 Q1 /etc/passwdと/etc/shadowのアクセス権は,それぞれどれか,次の中から選びなさい。 (A)rwxr-xr-x (B)rw-rw-rw- (C)rw-r--r-- (D)r-------- |
【問題と類題の解答は次ページ】