web-dev-qa-db-ja.com

ディレクトリからACLを削除して通常のアクセス制御に戻す方法は?

私たちは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」で示される権限リストのプラス記号+をどのように消去できるかということです。

31
Taiki Bessho

私たちの問題は以下を使用することで解決されました:

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は以下のようにコメントしています。

31
Taiki Bessho

奇数...再現できません:

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
4
maulinglawns