Gostaria de conceder permissões 755 a um diretório, então uso:
# chmod -R 755 /my/folder/
Funciona para todos os arquivos dentro da minha pasta, mas o problema é que utilizo scripts que criam novos arquivos nesta pasta, e por padrão as permissões são 600.
Como eu poderia impor 755 permissões a esses arquivos 'futuros'?
--EDITAR--
Eu uso um script que me fornece informações sobre o tráfego de rede no meu campus. Tenho um novo arquivo a cada 10 minutos, localizado em uma pasta chamada jornada, localizada na pasta do mês assim:
ls -lrt /home/netmet/secure/2017-04/2017-04-27/
total 118548
-rwxr-sr-x 1 root root 85922 avril 27 00:10 zzaccounting.dmp-00-00
-rwxr-sr-x 1 root root 54874 avril 27 00:20 zzaccounting.dmp-00-10
-rwxr-sr-x 1 root root 33534 avril 27 00:30 zzaccounting.dmp-00-20
-rwxr-sr-x 1 root root 48890 avril 27 00:40 zzaccounting.dmp-00-30
-rwxr-sr-x 1 root root 36878 avril 27 00:50 zzaccounting.dmp-00-40
-rwxr-sr-x 1 root root 37034 avril 27 01:00 zzaccounting.dmp-00-50
-rwxr-sr-x 1 root root 38154 avril 27 01:10 zzaccounting.dmp-01-00
-rwxr-sr-x 1 root root 38318 avril 27 01:20 zzaccounting.dmp-01-10
-rwxr-sr-x 1 root root 26978 avril 27 01:30 zzaccounting.dmp-01-20
-rwxr-sr-x 1 root root 31558 avril 27 01:40 zzaccounting.dmp-01-30
-rwxr-sr-x 1 root root 23662 avril 27 01:50 zzaccounting.dmp-01-40
-rwxr-sr-x 1 root root 32298 avril 27 02:00 zzaccounting.dmp-01-50
-rwxr-sr-x 1 root root 30282 avril 27 02:10 zzaccounting.dmp-02-00
-rwxr-sr-x 1 root root 31110 avril 27 02:20 zzaccounting.dmp-02-10
-rwxr-sr-x 1 root root 25718 avril 27 02:30 zzaccounting.dmp-02-20
-rwxr-sr-x 1 root root 26306 avril 27 02:40 zzaccounting.dmp-02-30
-rwxr-sr-x 1 root root 23690 avril 27 02:50 zzaccounting.dmp-02-40
-rwxr-sr-x 1 root root 23002 avril 27 03:00 zzaccounting.dmp-02-50
-rwxr-sr-x 1 root root 21854 avril 27 03:10 zzaccounting.dmp-03-00
Aqui eu mudei as permissões manualmente, mas quando o novo arquivo aparece, eu tenho o seguinte:
-rw------- 1 root root 3479106 avril 27 15:50 zzaccounting.dmp-15-40
O problema é que para cada pasta e arquivo em/home/netmet/seguro/Quero permissão 755 por padrão.
Eu já fiz isso:
chmod -R g+s /home/netmet/secure
setfacl -d -m g::rwx /home/netmet/secure
setfacl -d -m o::rx /home/netmet/secure
Responder1
Tente executar umask
na sua pasta. Se retornar algo diferente de '0022', o problema é seu. No seu caso, ele deve inicialmente gerar '0177'. O sistema de permissão ao criar diretório é basicamente computado:
default - umask
0777 é o modo padrão para diretórios e 0666 para arquivos comuns, mas existem umasks diferentes, se bem entendi essas coisas. Tente executar umask a=rx,uu+w
.
EDIT: Você pode usar umask para fornecer um bit de execução ao diretório para poder fazer cd nele, mas não para arquivos. Eles devem receber o bit de execução manualmente por questão de segurança. Basta adicionar chmod +x <file>
ao seu script. E o sinalizador de execução definido no arquivo, qualquer coisa que não seja executável, não tem efeito.
Responder2
Suponho que você esteja executando os scripts quegeraros arquivos em um ambiente onde umask está definido como 0077. Isso evita que o programa gerador defina quaisquer bits de permissão nos bits de permissão 'grupo' e 'outros'.
Observe que o umask faz parte do ambiente herdado de qualquer processo e normalmente é definido a partir de um 'perfil' padrão no login. Qualquer processo (shell) pode modificar o umask (inicial) de seus próprios filhos e descendentes com o comando 'umask'.
Os bits na umask atual impedirão a criação de arquivos com esses bits definidos em suas permissões (daí uma "máscara", mascarando os bits de permissão resultantes)
Responder3
Observação: Isso não é ideal e deve ser considerado uma solução alternativa temporária
Você pode criar um cron job que execute o comando chmod a cada 5 minutos ou conforme preferir.
Há tambémnotificar