LinuCレベル1 セキュリティ 問26
セキュリティ/ホストのセキュリティ設定シャドウパスワードの仕組みで、パスワードのハッシュ値を/etc/passwdではなく/etc/shadowに格納する理由として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「セキュリティ」に対応。実際の試験問題ではありません)
- A/etc/shadowの方がファイルサイズの上限が大きく、長いハッシュ値を格納できるため
- B/etc/passwdはバイナリ形式のため、テキストのハッシュ値を直接書き込めないため
- C/etc/passwdは全ユーザーが読める必要があり、ハッシュ値を一般ユーザーから隠すため
- D/etc/shadowはメモリ上にだけ存在するため、ディスクから盗み出される心配がないため
正解:C
解説
/etc/passwdはユーザー名とUIDの対応などを多くのプログラムが参照するため、一般ユーザーも読めるパーミッションになっています。ここにハッシュ値を置くと、誰でもそれを取り出して辞書攻撃などでパスワードを解析できてしまいます。そこでハッシュ値やパスワードの有効期限の情報を、rootなど限られた者しか読めない/etc/shadowへ分離したのがシャドウパスワードです。この場合、/etc/passwdの第2フィールドには「x」が書かれます。
選択肢ごとの解説
- A誤り。どちらも通常のテキストファイルで、格納できるサイズの違いが理由ではありません。
- B誤り。/etc/passwdはコロン区切りのテキストファイルで、バイナリ形式ではありません。
- C正しい。誰でも読める/etc/passwdからハッシュ値を外し、読める者を限定した/etc/shadowへ移すことが目的です。
- D誤り。/etc/shadowもディスク上の通常のファイルで、パーミッションで読める者を制限しています。