web-development-kb-pt.site

Como definir permissões de arquivo padrão para todas as pastas / arquivos em um diretório?

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.

274
Chris

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
288
Chris

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)

29
thebunnyrules

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

1
Bsienn