私たちはFreeBSD 10.3のホスティングサーバーを使用していますが、ここにはスーパーユーザーになる権限がありません。サーバーを使用して、弊社のWebページでApache2を実行します。以前のWebページの管理者が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」で示される権限リストのプラス記号+
をどのように消去できるかということです。
私たちの問題は以下を使用することで解決されました:
setfacl -bn foobar
重要なのは、オプション-n ...を使用してディレクトリからaclMaskを削除する必要があったことです。setfacl
のmanページは次のように述べています。
-n Do not recalculate the permissions associated with the ACL mask
entry. This option is not applicable to NFSv4 ACLs.
このオプションが機能した理由はわかりませんが、機能しました...
d?????????
上記の解決策の後の許可、chmod -R a+rX
は以下のようにコメントしています。
奇数...再現できません:
ls -l | grep foobar
drwxr-xr-x+ 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar
setfacl -b foobar/
ls -l | grep foobar
drwxr-xr-x 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar
残念ながら、現時点でテストするためのBSDへのアクセス権がありません。
システム情報:
Distributor ID: Debian
Description: Debian GNU/Linux 8.7 (jessie)
Release: 8.7
Codename: jessie