Gostaria de todos os arquivos criados em um diretório específico para obter automaticamente 755 permissões, isso é possível?

1

A pasta relevante é sobrescrita a cada dois dias, mas eu quero que o conteúdo retenha as 755 permissões. Eu tentei chmod g+s dir , mas sem sucesso. Isso é possível?

    
por Itai Ganot 15.08.2013 / 09:33

2 respostas

2

Você não pode fazer isso com o modelo de permissões posix; simplesmente não há provisão para isso. Uma provisão relacionada (setuid e setgid nos diretórios) permite que a propriedade seja herdada em um nível, mas não em permissões.

Você deve considerar o uso de ACLs se precisar dessa funcionalidade, pois as podem ser herdadas (no momento da criação do arquivo), mas isso requer um pouco de reflexão sobre a estrutura de permissões. Supondo que você tenha suporte a POSIX ACL em seu sistema e em seu sistema de arquivos, a ACL que você deseja definir no diretório será algo como d:u::7,d:g::5,d:o::5 (isso faz com que a ACL opere no UID e GID do qual o arquivo pertence); você precisa herdar isso também tornar o diretório suid e sgid). ACLs padrão nos diretórios são aplicados a novos arquivos e diretórios criados dentro deles, então, embora isso não seja exatamente uma maneira de fazer as permissões nos arquivos 0755, ele provavelmente fará o que você precisa.

Há um pouco de curva de aprendizado para as ACLs e elas são um dos recursos mais complexos (e muito raramente usados) do POSIX. Leia as páginas de manual: man 5 acl e man 1 setfacl . Não tente usar ACLs para nada até entender como eles funcionam.

A outra coisa a ser vista, dependendo de como o conteúdo do diretório está sendo escrito, é ter o programa que os está escrevendo especificando as permissões; isso estaria sujeito a umask, mas é a única maneira de efetuar as permissões desejadas da maneira literal que você deseja fazer. Muitos programas têm opções que você pode especificar para isso, ou você pode definir o umask desejado no shell que está executando o programa, criando os arquivos (você pode fazer isso sem afetar o sistema umask).

    
por 15.08.2013 / 10:09
2

Se você tiver um software adicional e não precisar de subpastas, poderá disparar um comando para alterar as permissões (por exemplo, chmod 755) quando os arquivos forem adicionados à pasta com incron . Você precisará instalar o incron, adicione-se à lista de usuários permitidos (adicionando-se ao /etc/incron.allow)

Você então configuraria uma entrada incrontab com incrontab -e e, em seguida, adicionaria uma linha como /path/to/directory_to_monitor IN_MODIFY chmod 755 a ela. Se você quiser aprofundar as opções do incron, confira a manpage, ou este guia sobre howtoforge .

Provavelmente não é muito elegante (já que ele assiste a alterações de arquivos), mas configurado corretamente, deve alterar as permissões dos arquivos automaticamente para o que você deseja.

    
por 15.08.2013 / 12:00

Tags