ディレクトリからACLを削除して一般的なアクセス制御に戻すにはどうすればよいですか?

ディレクトリからACLを削除して一般的なアクセス制御に戻すにはどうすればよいですか?

私たちはFreeBSD 10.3ホスティングサーバーを使用しており、スーパーユーザー権限を持っていません。当社のWebページはapache2を実行しているサーバーを使用しています。私たちのページの以前の管理者がそのディレクトリにACL権限を設定したようですが、それを削除したいと思います。ディレクトリ名があるとしますfoobar

これで結果ls -al foobarは次のようになります。

drwxrwxr-x+   2 myuser  another_user   512 Nov 20  2013 foobar

そして権限は次のとおりです。

[myuser@hosting_server]$ getfacl foobar
# file: foobar/
# owner: myuser
# group: another_user
user::rwx
group::rwx
mask::rwx
other::r-x

ここでは、ACL権限と権限リストの末尾にあるプラス記号を削除しようとしています。だから私たちはそうでした。

setfacl -b foobar

ACLによって管理されている特別な権限は削除されますが、プラス記号は削除されません+

+私たちの質問は、「ls -al foobar」に示すように、権限リストからプラス記号を削除する方法です。

答え1

私たちの問題は、以下を使用して解決されました。

setfacl -bn foobar

重要なのは、-nオプションを使用してディレクトリからディレクトリも削除する必要があることです。aclMaskのマニュアルページはsetfacl次のとおりです。

 -n      Do not recalculate the permissions associated with the ACL mask
         entry.  This option is not applicable to NFSv4 ACLs.

このオプションがなぜ機能するのかわかりませんが、うまくいきます...


d?????????上記の回避策を実行した後に権限を取得したら、次の2つの説明を試してくださいchmod -R a+rX

答え2

再帰オプションを試してください。

setfacl -R -b foobar

-n オプションは不要

関連情報