
Sugiro que eu tenha um arquivo de log com permissão 666 e sua proprietária seja Alice. Portanto, o usuário 'bob' pode alterar seu proprietário desta forma:
cp log log.temp; rm log; mv log.temp log
Então, como posso corrigir esse risco?
Responder1
Como Andrey disse acima, bob só pode fazer o que você diz se tiver direitos sobre o diretório que contém o arquivo. Basta alterar as permissões do diretório para xx5 se desejar que bob acesse, mas não consiga criar novos arquivos.
deEntendendo as permissões do UNIX
As permissões de acesso para arquivos e pastas significam coisas diferentes do ponto de vista do usuário.
Para arquivos
- Ler: Se o conteúdo do arquivo puder ser lido
- Escrever:Se o usuário ou processo puder gravar no arquivo (alterar seu conteúdo)
- Executar:Se o arquivo puder ser executado
Para diretórios
- Ler:Se a listagem do diretório puder ser obtida
- Escrever:Se o usuário ou processo puder alterar o conteúdo do diretório de alguma forma: crie novos ou exclua arquivos existentes no diretório ou renomeie os arquivos.
- Executar:Se o usuário ou processo puder acessar o diretório, ou seja, vá até ele (faça com que seja o diretório de trabalho atual)
Responder2
Supondo que o OP tivesse um bom motivo para Alice e Bob terem permissões de gravação no diretório de log, a resposta alternativa é.
chmod og+t directorypath
O problema não é que o usuário possa ler o arquivo de log, ou mesmo criar novos arquivos no mesmo diretório, mas sim mover e excluir o arquivo de log existente.
+t
restringe a movimentação e exclusão de arquivos em um diretório apenas ao proprietário do arquivo (à parte root).
É assim que /tmp
dir funciona.