システム設定ファイルを知ろう〜/etc/passwd〜

 ログインを許可するアカウントやパスワードの扱い,使用シェルなどを管理しているファイルが「/etc/passwd」だ。このファイルは一般ユーザでも見ることができるファイルだ。root以外の一般ユーザーがログインする際,前述したホームディレクトリや使用シェルが参照できなければ困るため,このようなファイルが用意されている。書式は次の通りであり,それぞれの項目も解説しよう。

hogehoge:x:500:500:hogeo:/home/hogehoge:/bin/bash

■各項目の解説
hogehoge ユーザー(アカウント)名
x パスワード (後述)
500 ユーザーID
500 グループID
hogeo 本名
/home/hogehoge ホームディレクトリ
/bin/bash ログインシェル

# ls -l /etc/passwd
-rw-r--r--1 root root 1496 11月7 13:11 /etc/passwd

 /etc/passwdファイル内でパスワード項目が「x」でなく空白である場合,パスワード無しでログインされてしまう可能性が高い。すぐにでも編集する必要がある。また,ユーザーIDはすべてのアカウントで重なっていてはならない。

 最近のLinuxディストリビューションであれば,パスワード項目には必ず「x」と書かれているはずだ。数年前までは,/etc/passwdファイルに直接暗号化されたパスワードが記述されていたが,裏に暗号解読自動化ツールなるものが出回る昨今,一般ユーザーでも参照できるこのファイルには「x」とだけ記される仕様となった。

 暗号化されたパスワードは,root以外には見られないようパーミッション設定された「/etc/shadow」に記されている(Linuxの場合)。これをシャドウパスワードと呼び,Linuxのインストール時にオプション指定に書かれていたのを覚えている人も多いだろう。

# ls -l /etc/shadow
-r--------1 root root 1051 11月7 13:06 /etc/shadow