Gostaria de conceder 755 permissões a um diretório, então uso:
# chmod -R 755 /my/folder/
Ele funciona para todos os arquivos dentro da minha pasta, mas o problema é que eu uso scripts que criam novos arquivos nessa pasta e, por padrão, as permissões são 600.
Como eu poderia impor 755 permissões nesses arquivos 'futuros'?
--EDITAR--
Eu uso um script que me fornece informações sobre o tráfego de rede no meu campus. Eu tenho um novo arquivo a cada 10 minutos, localizado em uma pasta chamada jornada, localizada na pasta 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 aparecer, 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 / secure / , quero a 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
debian
permissions
chmod
umask
klaypez
fonte
fonte
umask
, mas não para substituir um programa que cria arquivos com o modo0600
por design. Veja aqui para algumas referências.umask
para adicionar pouco execução de arquivos, essa necessidade de ser feito à mão2017-04-27
) e como os diretórios são criados em primeiro lugar? Atualize a pergunta com esses detalhes.Respostas:
Tente executar
umask
na sua pasta. Se retornar algo diferente de '0022', esse é o seu problema. No seu caso, ele deve gerar inicialmente '0177'. O sistema de permissão ao criar o diretório é basicamente calculado: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 executarumask a=rx,uu+w
.EDIT: Você pode usar umask para dar o bit de execução ao diretório para poder fazer o cd nele, mas não para os arquivos. Eles precisam ser executados manualmente por causa da segurança. Basta adicionar
chmod +x <file>
ao seu script. E, executar sinalizador definido no arquivo qualquer coisa que não seja executável não tem efeito.fonte
umask
comando shell não depende do caminho, depende apenas do usuário que o executa, cada usuário possui um valor umask específico, definido no login e que pode ser alterado posteriormente. Isso define como novas permissões de arquivo são criadas.chmod a=rx,u+w
na sua resposta.Suponho que você esteja executando os scripts que geram os arquivos em um ambiente em que umask esteja definido como 0077. Isso impede que o programa gerador defina quaisquer bits de permissão nos bits de permissão 'group' e 'other'.
Observe que o umask faz parte do ambiente herdado de qualquer processo e geralmente é definido a partir de um 'perfil' padrão no login. Qualquer processo (shell) pode modificar umask próprias e descendentes dos filhos (iniciais) com o comando 'umask'.
Os bits no 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)
fonte
Nota : isso não é o ideal e deve ser considerado uma solução temporária
Você pode criar uma tarefa cron que execute o comando chmod a cada 5 minutos ou conforme preferencial.
Há também inotify
fonte