Estou tentando configurar as permissões de arquivo que são definidas em diretórios e arquivos quando elas são criadas por um usuário / grupo específico, mas parecem estar tendo um problema.
Eu tentei definir o seguinte:
chmod 2770 /path/to/directory
chmod g+rwxs /path/to/directory
No entanto, quando eu criar um novo diretório dentro desse diretório, por exemplo
/path/to/directory/deletemeplease
deletemeplease
terá permissões drwxr-sr-x
Todos os arquivos criados dentro de /path/to/directory/
têm permissões rw-r--r--
Eu também tentei definir ACLs para o diretório, como abaixo:
setfacl -dm u::rwx,g::rwx,o::r /path/to/directory
Ao definir a ACL, as permissões dos arquivos e diretórios criados se tornam rw-rw-r--
, o que está se aproximando, mas o bit de execução ainda não está sendo definido.
Há um passo que estou perdendo aqui?
EDITAR
A resposta vinculada está apenas explicando a diferença entre umask e chmod. Meu problema é que, depois de definir as permissões, elas não estão ocorrendo.
Quando um novo diretório ou arquivo é criado, estou esperando que as permissões sejam definidas como rwxrwxr--
. No entanto, quando um novo diretório é criado, o diretório tem permissões rwxr-sr--
. Quando um novo arquivo é criado, as permissões são rw-rw-r--
. Então, se um novo diretório for criado e contiver arquivos, os arquivos dentro do diretório recém-criado terão permissões rw-r--r--
, o que é muito estranho.
Acabei de descobrir que, ao criar arquivos e diretórios dentro do terminal, essas permissões estão sendo aplicadas conforme o esperado (menos o bit de execução dos arquivos). O comportamento estranho descrito acima está acontecendo quando os diretórios / arquivos estão sendo criados via rsync de um script que está sendo executado. O script está sendo executado via usuário www-data, que é o usuário e grupo do diretório para o diretório que tem o acls aplicado, então eles não devem ser aplicados quando o rsync for executado?
O script que está executando o rsync está usando a execução do seguinte comando:
rsync -rltgoDzvO /path/for/files/to/sync /path/to/directory
Tags chmod rsync acl linux file-permissions