Problemas de permissão de arquivo

0

É possível alterar as permissões de um determinado diretório contendo alguns arquivos do 640, com os quais ele é gerado naquela pasta e alterá-lo para 644 depois que os arquivos são gerados para alguns usuários específicos acessarem esses arquivos?

Ambiente - RHEL 6 executando um banco de dados Oracle

    
por tesla747 06.01.2016 / 18:18

5 respostas

1

Leia a página chmod(1) man.

640 significa rw-r----- , que é: proprietário pode ler / escrever (primeiro trio), usuários do grupo que possui o arquivo (segundo trio) podem ler, qualquer outra pessoa pode não fazer nada.

Para alterá-lo para 644 (todos podem ler, o usuário proprietário pode escrever) você adiciona permissões de leitura para outras pessoas:

$ chmod o+w file

ou definir explicitamente via:

$ chmod 644 file

ou

$ chmod a=r,u+w

Dito isso, verifique se você está alterando as permissões de um diretório ou arquivo (isso não está claro na sua pergunta). O importante aqui é que remover a permissão executável de um diretório torna-a não-passível de varredura - ou seja, aqueles que não têm direitos executáveis para um diretório não podem alterá-la (nem ler os arquivos dentro dela).

    
por 06.01.2016 / 21:52
1

ACLs é exatamente o que você está procurando nessa situação e eles são suportados no RHEL 6. Por exemplo, você tem esses arquivos sendo colocados em um diretório específico: / dir

Você deseja manter as permissões que o diretório possui atualmente, mas também deseja conceder a um grupo ou usuário específico acesso a esse diretório e a seus descendentes que não podem acessar essa pasta ou seu conteúdo. Por exemplo, se você quiser fornecer um acesso de leitura ao grupo, execute o seguinte comando:

setfacl -dR -m "g:groupname:rwX" /dir

O -d define a acl como padrão para que, quando algo novo for incluído nesse diretório, herde a acl de /dir .

O -R é para recursivo.

O grande X garante que os usuários desse grupo possam cd nos diretórios, mas não os arquivos dentro do executável.

Em seguida, você pode executar o seguinte para garantir que ele foi aplicado corretamente:

getfacl /dir

Aqui está a página de manual para setfacl :

    
por 06.01.2016 / 21:56
0

Como o sistema sabe que o (s) arquivo (s) foi (m) completamente criado (s)?

Se algum processo criar o (s) arquivo (s) e você tiver algum controle sobre esse processo, sugiro adicionar uma etapa no final para alterar as permissões dos arquivos.

Se, em vez disso, você não tiver controle sobre o processo pelo qual os arquivos são criados, a melhor opção é provavelmente executar um cron job a cada alguns minutos. Esse trabalho deve procurar por arquivos que não foram alterados por um tempo (para garantir que você não encontre os que ainda estão sendo gravados) com as permissões que deseja alterar, e deve alterar as permissões. Algo como:

find /the/directory -type f -mmin +5 -perm 0640 -exec chmod 644 '{}' ';'

Execute a cada cinco minutos do cron e você deverá ter uma solução relativamente robusta.

    
por 06.01.2016 / 22:01
0

Parece que o que você está tentando fazer é alterar as permissões atribuídas por padrão a um arquivo quando ele é criado.

Nesse caso, acho que você precisa verificar help umask .

A configuração umask é o que determina quais permissões são atribuídas a um arquivo (ou diretório) quando ele é criado. (Há outros fatores envolvidos também; não estou tentando dar um tutorial aqui, apenas uma definição e um ponto de partida. Se você sabe que o termo de pesquisa para usar sua pesquisa pode ser muito mais rápido.)

    
por 16.01.2016 / 06:23
-1

Se você quiser alterar a permissão, você pode usar o comando chmod. E se. Chmod 777 filename com permissão de leitura, escrita, exercício para usuário, grupos e todos os outros usuários do sistema operacional

    
por 06.01.2016 / 21:55