Quero definir uma pasta para que qualquer coisa criada nela (diretórios, arquivos) herda permissões e grupos padrão.
Vamos chamar o grupo de "mídia". E também, as pastas/arquivos criados no diretório devem ter o g + rw automaticamente.
Encontrei: Aplicando permissões padrão
Do artigo:
chmod g+s <directory> //set gid
setfacl -d -m g::rwx /<directory> //set group to rwx default
setfacl -d -m o::rx /<directory> //set other
Em seguida, podemos verificar:
getfacl /<directory>
Resultado:
# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Esta é uma adição à resposta de Chris, baseada na minha experiência no meu equipamento Arch Linux.
O uso da opção padrão (-d) e da opção de modificação (-m) modifica apenas as permissões padrão, mas mantém intactas as existentes:
setfacl -d -m g::rwx /<directory>
Se você deseja alterar toda a estrutura de permissão da pasta, incluindo as existentes (você precisará fazer uma linha extra e torná-la recursiva -R:
setfacl -R -m g::rwx /<directory>
por exemplo.
setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else.
( CREDIT para marcar o branco nos comentários para a sintaxe da linha revogar todos os privilégios)
Adicione você/usuário registrado ao grupo www-data, para que possamos trabalhar com arquivos criados pelo servidor www-data
Sudo usermod -a -G www-data $USER
Precisa reiniciar/entrar novamente para que o grupo recém-adicionado entre em vigor
cd /var/www
Adicione www-data como membro do grupo da pasta html e seu usuário como proprietário, para que nós o possuamos e também um membro do grupo
Sudo chown -R $USER:www-data html
Coloque seu nome de usuário no lugar de USER
Defina a permissão de leitura, gravação e execução conforme necessário, (ugo) u = usuário, g = grupo, o = outros
Sudo chmod 750 html
Defina o GID do html, agora, os arquivos criados recentemente em html herdarão as permissões de propriedade:
Sudo chmod g+s html
Isso cria as regras padrão para arquivos/diretórios recém-criados no diretório html e subdiretórios.
Sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html
Faça o SELinux, se instalado, ignore o requisito de contexto www-data para permitir permissões de gravação
Sudo setsebool -P httpd_unified 1
diretório de lista para ver novas permissões aplicadas
ls -ld html
Retorna isso
drwxrwsr-x+ 3 html www-data
O + à direita significa que a ACL, lista de controle de acesso, está definida no diretório.
Referência : Link para o fórum