GNU/Linux >> Linux の 問題 >  >> Linux

Linux でパスワードデータベースファイル (/etc/passwd) を変更することはできますか?

その通りです:/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


すぐに使えるかどうかはわかりませんが、ハッキングすれば確実に可能です。これを行うには、次のことを行う必要があります:

<オール>
  • nsswitch ライブラリ (/lib/libnss_files.so または libnss_db.so - /etc/nsswitch.conf を確認) をチューニング/ハックして、他のファイルを読み取るようにします。
  • pam_unix モジュールを調整/ハックして、他のファイルを読み取れるようにします。

  • Linux
    1. Linuxでパスワードを変更する方法(passwdコマンド)

    2. Linux / etc/fstabファイルの紹介

    3. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

    1. CentOS / RHEL :削除された /etc/passwd ファイルから回復する方法

    2. Linux の /etc/hosts ファイルについて

    3. Linux のサンプル /etc/services ファイル

    1. Linux の /etc/profile 構成ファイルについて

    2. /etc/passwd はグループ内のユーザーを表示しますが、/etc/group は表示しません

    3. /etc/shadow から日付を抽出する