Portál AbcLinuxu, 10. května 2025 05:28
# ls -ld foo/ drwxr-xr-x 2 root root 4096 2011-03-21 19:29 foo/ # setfacl --set=group:users:rwx foo setfacl: foo: Malformed access ACL `group:users:rwx,mask::rwx': Missing or wrong entry at entry 1
# zfs create -o mountpoint=/share/devel -o aclmode=passthrough -o aclinherit=passthrough rpool/share/devel # chmod A+group:other:rwxp:fd:allow /share/devel/ # id dpecka; id jdoe uid=100(dpecka) gid=1(other) uid=101(jdoe) gid=1(other) # ls -dV . drwxr-xr-x+ 2 root root 2 Mar 21 18:00 . group:other:rwxp----------:fd----:allow owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:-w-p----------:------:deny group@:r-x-----------:------:allow everyone@:-w-p---A-W-Co-:------:deny everyone@:r-x---a-R-c--s:------:allow # su dpecka typo3:/share/devel> mkdir -p a/b/c typo3:/share/devel> gfind a/ -exec ls -dV {} \; exit drwxr-xr-x+ 3 dpecka other 3 Mar 21 18:15 a/ group:other:rwxp----------:fdi---:allow group:other:rwxp----------:------:allow owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:-w-p----------:------:deny group@:r-x-----------:------:allow everyone@:-w-p---A-W-Co-:------:deny everyone@:r-x---a-R-c--s:------:allow drwxr-xr-x+ 3 dpecka other 3 Mar 21 18:15 a/b group:other:rwxp----------:fdi---:allow group:other:rwxp----------:------:allow owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:-w-p----------:------:deny group@:r-x-----------:------:allow everyone@:-w-p---A-W-Co-:------:deny everyone@:r-x---a-R-c--s:------:allow drwxr-xr-x+ 2 dpecka other 2 Mar 21 18:15 a/b/c group:other:rwxp----------:fdi---:allow group:other:rwxp----------:------:allow owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:-w-p----------:------:deny group@:r-x-----------:------:allow everyone@:-w-p---A-W-Co-:------:deny everyone@:r-x---a-R-c--s:------:allow # su jdoe typo3:/share/devel> touch a/b/file; rmdir a/b/c/ typo3:/share/devel> gfind a/ -exec ls -dV {} \; drwxr-xr-x+ 3 dpecka other 3 Mar 21 18:15 a/ group:other:rwxp----------:fdi---:allow group:other:rwxp----------:------:allow owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:-w-p----------:------:deny group@:r-x-----------:------:allow everyone@:-w-p---A-W-Co-:------:deny everyone@:r-x---a-R-c--s:------:allow drwxr-xr-x+ 2 dpecka other 3 Mar 21 18:17 a/b group:other:rwxp----------:fdi---:allow group:other:rwxp----------:------:allow owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:-w-p----------:------:deny group@:r-x-----------:------:allow everyone@:-w-p---A-W-Co-:------:deny everyone@:r-x---a-R-c--s:------:allow -rw-r--r--+ 1 jdoe other 0 Mar 21 18:17 a/b/file group:other:rwxp----------:------:allow owner@:--x-----------:------:deny owner@:rw-p---A-W-Co-:------:allow group@:-wxp----------:------:deny group@:r-------------:------:allow everyone@:-wxp---A-W-Co-:------:deny everyone@:r-----a-R-c--s:------:allow typo3:/share/devel> rmg -rv a/ removed `a//b/file' removed directory: `a//b' removed directory: `a/' typo3:/share/devel> id uid=101(jdoe) gid=1(other)
# grep localh /etc/exports /srv/nfs localhost(rw,anonuid=1001,anongid=100,all_squash,no_subtree_check)
Řešení dotazu:
setfacl -m group:users:rwx
setfacl -m -d group:users:rwx
nebo
setfacl -m default:group:users:rwx
Mělo by to fungovat, ale netestoval jsem to...
### root > setfacl -d --set=group:users:rwx share/ > setfacl -m group:users:rwx share/ > getfacl share/ # file: share/ # owner: root # group: root user::rwx group::r-x group:users:rwx mask::rwx other::r-x default:user::rwx default:group::r-x default:group:users:rwx default:mask::rwx default:other::r-x ## su na usera dpecka > cd share/; su dpecka > mkdir -p a/b/c; find a* -exec getfacl {} \; # file: a # owner: dpecka # group: users user::rwx group::r-x group:users:rwx #effective:r-x mask::r-x other::r-x default:user::rwx default:group::r-x default:group:users:rwx default:mask::rwx default:other::r-x # file: a/b # owner: dpecka # group: users user::rwx group::r-x group:users:rwx #effective:r-x mask::r-x other::r-x default:user::rwx default:group::r-x default:group:users:rwx default:mask::rwx default:other::r-x # file: a/b/c # owner: dpecka # group: users user::rwx group::r-x group:users:rwx #effective:r-x mask::r-x other::r-x default:user::rwx default:group::r-x default:group:users:rwx default:mask::rwx default:other::r-x
mask::r-x
man setfacl
bych řekl, že úplně stejně jako ostatní defaultní nastavení:
setfacl -m -d m:rwx
To tam má. Ale ta maska je default a mkdir ji nastavil jinak. Potřebujete před mkdir si udělat umask 0. V DAC systému jako je posix ACL nemá absolutní kontrolu nad právy správce systému ale vlastník souboru. Tím že naspecifikujete nějaký default ACL tak vůbec nezaručíte, že ty práva tvůrce nepřenastaví jinak.setfacl -m -d m:rwx
# setfacl -RP -m g:public:rwx /home/public/*
denně pouštěné cronem. A funguje to
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.