web-dev-qa-db-ja.com

unix / setfacl:正しい権限継承のためにディレクトリのデフォルトACLを設定

私は/ projects/svnにいくつかのsvnリポジトリを持っています。これは、2人のユーザー、mine(unix)、およびwwwrun(Apache、http上のsvnの場合)によって書き込み可能でなければなりません。

新しく作成されたフォルダとファイルは、両方のユーザーが読み取り/書き込み可能である必要があります

setfaclをいじってみましたが、必要な方法で動作させることができませんでした

私の試みは次のとおりでした:

unknown:/projects/svn # setfacl -b .
unknown:/projects/svn # setfacl -m u:unix:rwx,u:wwwrun:rwx,m:rwx .
unknown:/projects/svn # setfacl -dm u:unix:rwx,u:wwwrun:rwx,m:rwx .
unknown:/projects/svn # getfacl .
# file: .
# owner: unix
# group: users
user::rwx
user:wwwrun:rwx
user:unix:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:wwwrun:rwx
default:user:unix:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

unknown:/projects/svn # su -s /bin/bash wwwrun
wwwrun@unknown:/projects/svn> md test
wwwrun@unknown:/projects/svn> getfacl test
# file: test
# owner: wwwrun
# group: www
user::rwx
user:wwwrun:rwx                 #effective:r-x
user:unix:rwx                   #effective:r-x
group::r-x
mask::r-x
other::r-x
default:user::rwx
default:user:wwwrun:rwx
default:user:unix:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

wwwrun@unknown:/projects/svn>

ご覧のとおり、私のユーザー(unix)にはr-x(有効な)権限しかありません

3
fholzer

まあ、私はマニュアルを読むべきだった...

https://web.archive.org/web/20151220084629/http://turing.suse.de/~agruen/acl/linux-acls/online/
セクション「ACLのしくみ」

私のグループビットは制限的(r-w)であり、マスクをr-xに制限し、その後、ACL内の指定されたユーザーは書き込みできませんでした

実際、それはかなり単純です:)

5
fholzer

私はあなたが得たものを再現することはできません。 m:rwxを含めるかどうかに関係なく、期待される動作が得られます。これは、カーネル2.6.32-24-generic、ext4ファイルシステム、およびsetfacl v。2.2.49を使用するLinux Ubuntu 10.04 LTS(Lucid Lynx)にあります:(ユーザー「bhm」および「test」)

$ pwd
/data/musikk/dir
$ setfacl -b .
$ setfacl -m u:bhm:rwx,u:test:rwx,m:rwx .
$ setfacl -dm u:bhm:rwx,u:test:rwx,m:rwx .
$ getfacl .
# file: .
# owner: bhm
# group: bhm
user::rwx
user:bhm:rwx
user:test:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:bhm:rwx
default:user:test:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

$ su -s /bin/bash test
Password: 
test@hva:/data/musikk/dir$ mkdir testdir
test@hva:/data/musikk/dir$ getfacl testdir
# file: testdir
# owner: test
# group: test
user::rwx
user:bhm:rwx
user:test:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:bhm:rwx
default:user:test:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
2
bhm

問題は、何らかの理由でデフォルトでマスクが設定されていないことです。なぜ起こっているのかわかりませんが、設定しない方がいいかもしれません。 m:rwxを見逃してから、試してください。

0
James L