QA@IT

/etc/shadowのパーミッションについて

3718 PV

LPIC102の勉強をしていたら
「"/etc/shadow はrootにしか読み込めないように400のパーミッションが設定されている。」
という説明がありました。

ですが実際にUbuntu 12.04 で確認してみたところ
-rw-r----- 1 root shadow 1219 7月 26 10:28 /etc/shadow
となっており CentOS6では
---------- 1 root root 968 6月 20 11:39 2013 /etc/shadow
と000になっていました。

セキュリティとして正しい方法があるなら全てのディストリで統一されているべきだと思うのですが、
何故このような状態になっているかの説明は探しても見つかりませんでした。

その辺りの理由を知っている方がいたら教えて下さい。

回答

CentOSで 000なのは、単純にrootは000であろうが読み書きできるからでしょう。

Debianが640 root:shadow なのは、以下のshadowを作る方法に従ったためだと思われます。

http://archive.linux.or.jp/JF/JFdocs/Shadow-Password-HOWTO-5.html

さらに、ファイルのオーナとパーミッションが正しいかどうか確認しましょう。 X-Window System を使っているならば、xlock や xdm は shadow ファイルを読めるようになっていなければなりませ ん(書き込みができる必要はありません)。

これには2つの方法があります。 一つは、xlockを root に SUID する方法です。(xdm はいずれにせ よ root として動作するので関係ありません。) もう一つは shadow ファイルの所有者はrootに、グループはshadowにする方法 です。このような設定にする前には、/etc/group ファイルを見て、 shadow グループがあるかどうかをまず確認してください。shadow グループに 属するユーザは一人もいてはいけません。

chown root.root passwd
chown root.shadow shadow
chmod 0644 passwd
chmod 0640 shadow
編集 履歴 (0)
  • 回答ありがとうございます。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。