/etc/passwd.xxx ファイルを生成することはできませんが、centos では /etc/test ファイルを生成できます。

/etc/passwd.xxx ファイルを生成することはできませんが、centos では /etc/test ファイルを生成できます。

私が使用しているAWSイメージは何らかの理由で構成されており、/etc/passwd.xxx(xに何も挿入しない)という名前のファイルを作成できないようです。 test、test.xxxなどのファイルを作成できますが、passwdで始まるファイルの生成のみを禁止するようです。

これは、groupmodコマンドが実行されたときにpasswd.xxxxx(xは任意の数字)ファイルを生成しようとするために問題になります。おそらく、ファイルを生成した後、passwd.xxxxxファイルを使用してpasswdを切り替えますが、passwd.xxxxxファイルを生成できないため、それまでは実行されません。私が作成したグループがすでに別のGIDを使用して存在している場合、これによりansibleスクリプトが失敗します。

したがって、問題は、なぜ特定の構造のファイルのみが生成が拒否され、他のすべてのファイルが生成されるのかということです。

Straceは有用なエラーよりも少ないです。

open("/etc/passwd.23491" O_WRONGLY|O_CREAT|O_TRUNC 0600) = -1 EACCESS (Permission denied)

私はすべてにsudoを使用します。

/ etcには755の権限があり、/ etcのlsattrは次のようになります。

---------I--e-- /etc

確認してみると、大文字iと小文字iが異なります。私の言葉は、インデックス作成にハッシュツリーを使用することを意味します。

selinuxを許可モードに設定しようとしましたが、問題は引き続き発生します。 selinuxログを見ると、唯一のavc拒否エラーはsshdのcommとeic_run_authorized_keysの名前です。これはpasswdファイルの生成に関連していると思われます。 groupmodへのシステムコールを見ることができますが、それに関連する明白なエラーはありません。

passwd.xxxxファイルを生成できないのはなぜですか、それを許可するように変更するにはどうすればよいですか?

ベストアンサー1

おすすめ記事