私が作業しているマシンの1つで奇妙な動作が発生しました。 /etc/passwdで1人のユーザーのシェルを手動で変更しましたが、そのユーザーとしてログインしようとすると、以前のシェルはまだ使用されます。 getentも以前のものを示しています。しかし、/etc/passwdファイルのgrepを介してファイルを正しく保存したことを確認しました。
/etc/passwd(Linuxの場合)のキャッシュはありますか?
それを避ける方法?
答え1
runningというプロセスはありますかnscd
?これはネームサービスキャッシュデーモンです。
実行している場合は、キャッシュされたすべてのファイルデータをsudo nscd -i passwd
忘れる必要があることを知らせるために実行する必要があります。/etc/passwd
ここには別のキャッシュがあります。そのキーワードはgroup
、hosts
とですservices
。netgroup
これはLDAP / AD / NISベースの認証方式でより一般的に使用されていますが、ユーザー/グループ/サービス/ホストファイルの検索を多数実行する特定のプロセスを実行すると、システムのパフォーマンスが向上します。あるいは、実際に使用していない一部のサービス(おそらくそれらの一部のみ)をインストールした場合は、一部のサービスが依存関係として導入されているnscd
可能性があります。