
最近、問題が発生しました。サーバーがあり、特定のフォルダー内にサブフォルダーを作成すると、「フォルダーの名前は:」AFORWARD です。たとえば、「AFORWARD」内に「GG」を作成すると、「AFORWARD」内に作成したフォルダーはすべてアクセスできなくなり、アクセスできなくなります。サブディレクトリに設定されているアクセス許可を確認しようとしたところ、デフォルトでは実行ビットが含まれていないようです。ただし、他のディレクトリでこれを行うと、フォルダーにデフォルトで実行ビットのアクセス許可が含まれます。そのため、次の操作を実行しました。
ls -l -d ./AFORWARD
出力:
drwxrwxr-x+ 9 admin admin 4096 Oct 16 01:19 ./AFORWARD
ls -l -d ./AFORWARD/GG
出力:
drw-rwxr--+ 2 admin admin 4096 Oct 16 01:31 ./AFORWARD/GG
フォルダーに問題がないように見えるのですが、私が知らないか、何かが間違っているのかもしれません。単純な chmod コマンドを使用してフォルダーに必要な権限を与えることで修正できることはわかっていますが、問題は、フォルダーを作成したらデフォルトで権限を設定する必要があることです。問題は Java にあります。サーバー プログラムは Java 上で実行され、Java はファイルやフォルダーを作成し、それらを読み取り、それらを使用してさまざまな操作を行いますが、作成されたフォルダーにはデフォルトで実行ビット権限が含まれていないため、アクセスできません。アクセスできなくなると、失敗し、サーバーがクラッシュします。
答え1
ディレクトリとそのサブディレクトリから ACL を削除すると、かなり役立ちます。
setfacl -b -R ./AFORWARD