Permissões em arquivos:


9

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   

3
ACL é a resposta. Isso já foi discutido antes.
d3ag0s

8
A ACL é a resposta para substituir o umask, mas não para substituir um programa que cria arquivos com o modo 0600por design. Veja aqui para algumas referências.
Ilkkachu

1
E mais um detalhe: por padrão, você não pode usar umaskpara adicionar pouco execução de arquivos, essa necessidade de ser feito à mão
Romeo Ninov

umask não funciona pessoal
klaypez 28/04

Você pode editar o script usado para criar os arquivos? Como os arquivos entram no diretório final (por exemplo 2017-04-27) e como os diretórios são criados em primeiro lugar? Atualize a pergunta com esses detalhes.
quer

Respostas:


1

Tente executar umaskna 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 - umask0777 é 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 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.


1
O umaskcomando 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.
Patrick Mevzek

Isso deve estar chmod a=rx,u+wna sua resposta.
Patrick Mevzek

1

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)


0

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.