4

/ etc/passwdと/etc/ shadowを同時アクセスから保護するにはどうすればよいですか?にロック機構がありませんpwd.h。ロックの取得についてはマニュアルを参照してpwd_mkdbいますが、排他的アクセスのためにファイルをロックしているだけですか?

これらのファイルを直接変更するユーティリティを作成する場合、またはget / set / endpwentファミリーの関数を使用してこれらのファイルをロックするための規則はありますか?

4

1 に答える 1

3

最近では、ほとんどのアプリケーションが PAM を使用していると思いますね。http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_ADG.html。そうは言っても、`pam_unix.so' のソースを見て、彼らがどのようにそれを行っているかを確認することができます。pam_unix_passwd.cを調べて、これに従いました:

/* update the password database(s) -- race conditions..? */

retval = unix_update_db(pamh, ctrl, user, pass_old, pass_new);

` pwdb ' という接頭辞が付いた関数がたくさんあるここまで。グーグルは再びこれを明らかにしましたが、これはpasswdのソースだと思います。

結果として、これらのファイルの編集は で処理されると思いますlibpwdb。確かに、次のものが含まれています。

#include <pwdb/pwdb_public.h>
#include <pwdb/pwdb_shadow.h>

しかしfind . -name "*pwdb*" 2>/dev/null、これまでのところ、私のシステムでは何も見つかりませんでした。

于 2010-02-26T01:42:02.700 に答える