ls -l /etc/passwd
与える
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
したがって、一般ユーザーはファイルを読み取ることができます。これはセキュリティホールですか?
ls -l /etc/passwd
与える
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
したがって、一般ユーザーはファイルを読み取ることができます。これはセキュリティホールですか?
回答:
実際のパスワードハッシュはに保存されますが/etc/shadow
、これは通常のユーザーが読み取ることはできません。 /etc/passwd
システムが機能するためにすべてのユーザーが読み取り可能である必要があるユーザーIDおよびシェルに関するその他の情報を保持します。
/etc/shadow
。BSDはを使用します/etc/master.passwd
。Solarisは/etc/security/passwd
。HP-UXが使用する/.secure/etc/passwd
と、リストに載っている...
通常、ハッシュされ/etc/shadow
たパスワードはほとんどのLinuxシステムに保存されます。
-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow
(これらは、に格納されている/etc/master.passwd
上にBSDシステム)。
認証を実行する必要があるプログラムは、引き続きroot
特権で実行する必要があります。
-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd
あなたが嫌いな場合はsetuid root
、プログラムやシステム上のすべてのハッシュされたパスワードを含む1つのファイルを、あなたはでそれを置き換えることができますのOpenwall TCB PAMモジュール。これにより、ハッシュ化されたパスワードを保存するための独自のファイルがすべてのユーザーに提供されます。その結果setuid root
、システム上のプログラムの数を大幅に減らすことができます。
パスワードはもう/etc/passwd
何年も保存されていません。名前はレガシーであり、ローカルユーザーデータベースであるという機能はそのままであり、そのためにはすべてのユーザーが読み取り可能でなければなりません。
ユーザーを特定できるため、ある程度はそうです。以前は、パスワードを入手することもできました。ただし、クラックする価値のある1つのroot
ユーザーIDは、パスワードファイルなしでよく知られています。
一般に、パスワードファイルを誰でも読み取り可能にするユーティリティは、リスクをはるかに上回ります。たとえ世界中で読めなくても、機能するgetent passwd
コマンドはセキュリティゲインを無効にします。
非ルートユーザーが他のユーザーが所有するファイルを識別する機能はなくなります。所有者(passwdファイルのユーザー)と非所有者(passwdファイルのユーザーではない)を識別できると、ファイルシステムの内容を確認するのに役立ちます。適切なsetuid
プログラムでこれを解決することは可能ですが、それらのプログラムを介して巨大な攻撃ベクトルが追加されます。
結局のところ、それはバランスの問題であり、この場合、私はパスワードの世界が読み取り可能なバランスをしっかりと持っていると言うでしょう。