その通りです:/etc/passwd
と /etc/shadow
pam_unix.so
によって相談されます 、PAM の一部です。少なくとも最近の Linux では。 pam_unix.so
にパッチを当てることでこれを変更できます .マンページを信じるなら、システム データベースの場所を変更することはできません。
そして、あなたは本当にしたくありません。 /etc/passwd
認証に使用されるだけでなく、(逆の) 名前解決や、ユーザーのフルネーム、シェルなどの検索にも使用されます。名前と場所は非常に標準化されているため、それらを移動すると、PAM だけでなく、ほぼ間違いなく問題が発生します。予想以上に多くのパッチを適用する必要があります。
更新: /etc/{passwd,shadow,group}
を非表示にしようとしている場合 セキュリティのためのファイルなので、心配する必要はありません。あいまいさによるセキュリティがポリシーとして役立つことはめったにありません。それらをそのままにして、残りのポリシーを強化してください。
更新:考えられる解決策
別のユーザー/グループ データベース セットにアクセスする必要があるカスタム ソフトウェアがある場合は、関連する PAM および NSS モジュールのコピーを作成し、それらにパッチを適用できます。 カスタム データベースを使用します。元の UNIX データベースは元の場所にとどまるため、ソフトウェアが混乱することはありませんが、PAM と NSS を設定して、必要な場所でカスタム モジュールを使用し、適切なポリシーを使用することができます。
UNIX データベースを本質的に元の状態に保つと、要求したものが得られます。これは radius
とほとんど同じです と ldap
PAM/NSS モジュールが行います:追加の (代替ではない) 認証情報とユーザー/グループ情報のソース。
さらに一歩進んで、PAM と NSS に戻り、UNIX データベース ルックアップを完全に無効にすることができます。古いソフトウェアのためにそこにファイルを残しておきます (当然、ユーザー/グループ データベースのビューは不正確になりますが、少なくとも破損することはありません)。
あなたが探しているのは pam_pwdfile
です モジュール。 Debian/Ubuntu では、パッケージは libpam-pwdfile
です (RedHat 派生ディストリビューションについては不明)。
README
すぐに使えるかどうかはわかりませんが、ハッキングすれば確実に可能です。これを行うには、次のことを行う必要があります:
<オール>