chmod comando para definir um arquivo como permissão negada

2

Eu quero que meu arquivo não seja excluído por nenhum usuário. Posso saber o comando chmod mode para o mesmo?

Eu preciso obter esse tipo de mensagem (rm ctl_model_fact.csv: permissão negada)

    
por chandra prakash 31.10.2014 / 14:47

3 respostas

3

root pode sempre excluir um arquivo (pelo menos no nível chmod ; você precisa de atributos do sistema de arquivos ou de um Módulo de Segurança do Linux (SELinux, AppArmor) para evitar isso).

Para usuários comuns, você precisa remover a permissão de gravação do diretório pai de todos os usuários.

    
por 31.10.2014 / 14:54
3

Desde que você não esteja tentando impedir que o root exclua o arquivo, é necessário modificar as permissões no diretório em que ctl_model_fact.csv reside. chmod go-w [your directory] fará isso, mas afetará todos os arquivos em seu diretório, não apenas ctl_model_fact.csv . Se você também quiser garantir que outros usuários não possam alterar o arquivo, use chmod go-w ctl_model_fact.csv .

    
por 31.10.2014 / 15:03
2

A exclusão é uma operação de gravação, portanto, é necessário remover o acesso de gravação do diretório que contém o arquivo (usando o arquivo ~/foo/bar.txt como exemplo):

chmod a-w ~/foo/

ou

chmod 666 ~/foo/

Isso, no entanto, ainda permite que o root exclua o arquivo. Se não quiser permitir isso, as coisas ficam mais complexas. Tanto quanto eu sei , a melhor maneira (e isso é facilmente contornado pela inversão do comando) é configurá-lo para "imutável":

sudo chattr +i ~/foo/bar.txt

Isso impedirá que o root exclua o arquivo, mas ele sempre pode executar chattr -i ~/foo/bar.txt novamente para desfazê-lo, então é mais um obstáculo do que um bloco inteiro. No entanto, impede que usuários não-raiz o excluam e eles não terão o direito de executar chattr -i , portanto, essa é a maneira mais fácil, pois não afeta todos os arquivos no diretório.

    
por 31.10.2014 / 15:08

Tags