Configuração de ACL não funcional

2

Eu quero que os meus usuários 'tobias' e 'www-data' possam ler e escrever em um diretório específico.

Para esse fim, fiz chore para tobias: www-data, adicionei tobias ao grupo www-data e adicionei setguid ao diretório. Arquivos e subdiretórios são criados corretamente com o grupo www-data que os possui.

O próximo passo é, no meu entender, usar o ACL para ter uma determinada umask para esse diretório específico. Eu quero que seja 002, para que o conteúdo receba permissão de rw-rw-r. Então eu adicionei 'acl' à minha montagem em / etc / fstab e remontei o disco. Até aí tudo bem.

Aqui está a configuração da ACL para o meu diretório:

$ getfacl app/cache/
# file: app/cache/
# owner: tobias
# group: www-data
# flags: -s-
user::rwx
user:www-data:rwx
user:tobias:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:tobias:rwx
default:group::rwx
default:mask::rwx
default:other::r-x

Mas, mesmo com a configuração da ACL, ele ainda cria novos arquivos e subdiretórios com permissão rw-r - r--. Então ou eu fiz algo errado ou eu entendi mal o conceito. Alguém poderia me ajudar a descobrir qual e o que devo fazer para que funcione?

    
por Tobias Sjösten 23.07.2011 / 19:23

1 resposta

1

Parece funcionar aqui:

ubuntu-amd64% id | tr ',' '\n' | grep www-data
33(www-data)
ubuntu-amd64% mount | grep ' / '
/dev/sda1 on / type ext4 (rw,errors=remount-ro,acl)
ubuntu-amd64% sudo sh
ubuntu-amd64# cd /var/www
ubuntu-amd64# mkdir -p app/cache
ubuntu-amd64# chown fission:www-data app/cache
ubuntu-amd64# chmod 2775 app/cache
ubuntu-amd64# ls -ld app/cache
drwxrwsr-x 2 fission www-data 4096 2011-07-23 11:21 app/cache
ubuntu-amd64# setfacl -dm u::rwx,g::rwx,o::rx app/cache
ubuntu-amd64# getfacl app/cache
# file: app/cache
# owner: fission
# group: www-data
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

ubuntu-amd64# exit
ubuntu-amd64% umask
022
ubuntu-amd64% touch /var/www/app/cache/test
ubuntu-amd64% ls -l /var/www/app/cache/test
-rw-rw-r-- 1 fission www-data 0 2011-07-23 11:23 /var/www/app/cache/test

Para ser honesto, eu não sei muito sobre as ACLs do Linux, mas parece-me que a opção mask não é o que você precisa - deve ser o suficiente para as opções default:{user,group,other} serem definidas como acima .

    
por 23.07.2011 / 20:33