パスワードデータベースファイルを変更することは可能ですか(/etc/passwd
)を他のファイルに。この認証メカニズムは内部でどのように機能しますか?それはpamに依存しますか?
そのとおりです:/etc/passwd
と/etc/shadow
は、PAMの一部であるpam_unix.so
からコンサルトされます。少なくとも最近のLinuxでは。 pam_unix.so
にパッチを適用することでこれを変更できます。マンページが信頼できる場合は、システムデータベースの場所を変更することはできません。
そして、あなたは本当にしたくありません。 /etc/passwd
は、認証だけでなく、(逆の)名前解決や、ユーザーのフルネーム、シェルなどの検索にも使用されます。名前と場所は非常に標準化されているため、それらを移動すると、ほぼ間違いなくPAM以外のものが壊れます。あなたはあなたが交渉したよりもはるかに多くのパッチを当てる必要があるでしょう。
更新:セキュリティのために/etc/{passwd,shadow,group}
ファイルを非表示にしようとしている場合でも、心配する必要はありません。隠すことによるセキュリティがポリシーとして役立つことはめったにありません。それらをそのままにして、残りのポリシーを厳しくします。
カスタムソフトウェアがあり、ユーザー/グループデータベースの別のセットにアクセスする必要がある場合は、関連するPAMおよびNSSモジュールのコピーとパッチthemカスタムデータベースを使用します。元のUNIXデータベースは元の場所にあるため、ソフトウェアが混乱することはありませんが、PAMとNSSを設定して、必要なときにカスタムモジュールを使用し、理にかなったポリシーを使用できます。
UNIXデータベースを本質的に無垢に保ち、あなたが求めていたものを手に入れましょう。これは、radius
およびldap
PAM/NSSモジュールが行うこととほぼ同じです。これらは追加を提供します(置換ではありません) )資格情報のソースおよびユーザー/グループ情報。
さらに一歩進んで:PAMとNSSに戻って、UNIXデータベースの検索を完全に無効にすることができます。古いソフトウェア用にファイルをそこに残します(当然、ユーザー/グループデータベースのビューは不正確になりますが、少なくとも壊れることはありません)。
あなたが探しているのはpam_pwdfile
モジュール。 Debian/Ubuntuでは、パッケージはlibpam-pwdfile
(RedHat派生ディストリビューションについては不明)。
パッケージに含まれているREADME
は、その使用方法を説明しています。
箱から出してすぐにできるかどうかはわかりませんが、ハッキングすれば間違いなく可能です。これを行うには、次のことを行う必要があります。
NISまたはLDAPを使用してユーザーを認証します。彼らのパスワードは/ etc/{password/shadow}ファイルに保存されません。