Quero definir uma pasta de tal forma que qualquer coisa criada dentro dela (diretórios, arquivos) herde as permissões padrão e grupo.
Vamos chamar o grupo " media". E também, as pastas/arquivos criados dentro do diretório devem ter g+rw automaticamente.
Eu encontrei-o: Aplicando as 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
A seguir podemos verificar:
getfacl /<directory>
Saída:
# 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
Isto é uma adição ao Chris' resposta, it's baseado na minha experiência no meu Arch Linux rig.
Usando a chave padrão (-d) e a chave de modificação (-m) apenas modificará as permissões padrão, mas deixará as permissões existentes intactas:
setfacl -d -m g::rwx /<directory>
Se você quiser mudar a pasta'toda a estrutura de permissão incluindo as existentes (você'terá que 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 marcardwite nos comentários para o sintetizador da linha de revogação de todos os privilégios)
Usando o seguinte comando, você pode definir a permissão padrão para um arquivo:
chacl -R filename