unix / setfacl: define a acl padrão do diretório para a herança correta da permissão

3

Eu tenho vários repositórios svn em / projects / svn que devem ser graváveis por 2 usuários, meu (unix) e wwwrun (apache, para svn sobre http)

pastas e arquivos recém-criados devem ser lidos / graváveis por ambos os usuários

eu brinquei com o setfacl, mas não consegui fazer funcionar do jeito que eu preciso

minha tentativa foi a seguinte:

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>

como você pode ver, meu usuário (unix) tem somente permissões rx (como efetivas)

    
por fholzer 05.09.2010 / 01:34

3 respostas

5

bem, eu deveria ter acabado de ler o manual ...

link
Seção "Como funcionam as ACLs"

meu bit de grupo era restritivo (r-w), que restringia a máscara a r-x e, subsequentemente, os usuários nomeados na minha ACL não podiam escrever

na verdade, é bastante simples:)

    
por 06.09.2010 / 15:12
2

Não consigo reproduzir o que você recebe; Eu obtenho o comportamento esperado se incluo o m: rwx ou não. Este é um Linux Ubuntu 10.04 LTS (Lucid Lynx) com kernel 2.6.32-24-genérico, o sistema de arquivos ext4 e setfacl v. 2.2.49: (Usuários 'bhm' e 'teste')

$ 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
    
por 05.09.2010 / 13:57
0

O problema é que a máscara não está sendo definida por padrão por algum motivo. Não vejo por que isso está acontecendo, mas talvez seja melhor não defini-lo. Tente perder o m: rwx e tente.

    
por 05.09.2010 / 10:15