Configurando ACLs corretamente para -rw-r--r--+

Configurando ACLs corretamente para -rw-r--r--+

Consegui definir as permissões ACL padrão para novos arquivos da seguinte forma:

sudo setfacl -Rdm u:usernamehere:rwx /var/www/path/to/files

Isso parece dar a todos os novos arquivos uma permissão de:

-rw-r-----+

Espero que novos arquivos obtenham a seguinte permissão:

-rw-r--r--+

Se fizer alguma diferença, estou executando o CentOS.

Qualquer ajuda sobre isso é muito apreciada.

Obrigado!

Responder1

Primeiro, observe que ACLs de arquivos que possuem entradas de ACL para usuários ou grupos nomeados também possuem umMáscara LCAentrada que limita as permissões concedidas por essas entradas ACL e pela entrada do proprietário do grupo. A entrada da máscara mostra as permissões do grupo lse outros utilitários que analisam apenas os bits de permissão tradicionais.

Então, se você lsmostrar -rw-r--r--+, a máscara ACL é r--, o que significa que a permissão ACL u:usernamehere:rwxatuará como u:usernamehere:r--. Pode não ser isso que você deseja. Por outro lado, observe que u:usernamehere:rwxé diferente de u::rwx, mesmo para arquivos pertencentes a usernamehere. A primeira é uma entrada nomeada, limitada pela máscara, enquanto a segunda é a entrada para o proprietário do arquivo que énãolimitado.

A ideia da máscara é que uma ferramenta que execute o equivalente chmod go-rwxainda possa tornar o arquivo inacessível para qualquer pessoa, exceto o proprietário. Você pode remover a entrada de máscara com setfacl -x m:: filename, mas isso só funciona se não houver entradas de usuário ou grupo nomeados.

Em qualquer caso, você pode adicionar mais de uma entrada padrão no mesmo comando. Isso definiria as entradas padrão para que o proprietário do arquivo obtivesse permissões rwx, a máscara fosse definida como r--e as permissões para "outros" fossem definidas como r--:

$ setfacl -R -d -m u::rwx -m m::r-- -m o::r-- /path

Você também pode querer definir explicitamente uma ACL padrão para o proprietário do grupo ( g::), já que a entrada aparece em qualquer caso (com os valores provavelmente retirados dos bits de permissão). Por exemplo, aqui, a entrada para o proprietário do grupo não está totalmente em vigor, pois a máscara a restringe:

default:user::rwx
default:group::r-x              #effective:r--
default:mask::r--
default:other::r--

Um arquivo criado no diretório aparece lscomo -rw-r--r--+.


Então, novamente, se você deseja apenas que o usuário nomeado obtenha as permissões que você diz, você pode deixar o campo de máscara de fora e setfaclconfigurá-lo para você com base nas permissões usadas para as entradas reais da ACL:

setfacl -R -d -m u::rwx -m u:usernamehere:rwx -m o::r-- /path

Um arquivo criado no diretório agora aparece em lsas -rw-rw-r--+e em getfacl:

user::rw-
user:usernamehere:rwx           #effective:rw-
group::r-x                      #effective:r--
mask::rw-
other::r--

A máscara está faltando xdesde que criei o arquivo com touche ela usa as permissões 0666, mascarando os xbits.

informação relacionada