O que o atributo 'a' em lsattr significa?

6

Eu estava tentando remover um histórico antigo do meu arquivo .bash_history , mas recebi esta mensagem:

[john ~] /home/john $ mv .bash_history .bas
mv: impossible to move '.bash_history' to '.bas': Operation not permited

Eu suspeitei da permissão de arquivo / diretório:

[john ~] /home/john $ ls -ld .bash_history .
drwxrwx--T+ 5 root       john 4096 Out 11 19:45 .
-rw-r--r--  1 john john 2977 Out 10 14:36 .bash_history
[john ~] /home/john $

Então eu tentei:

[john ~] /home/john $ lsattr .bash*
-----a------- .bash_history
------------- .bash_logout
------------- .bash_profile
------------- .bashrc
[john ~] /home/john $

Provavelmente é esse atributo a ; o que isso significa?

    
por jyz 12.10.2010 / 00:58

1 resposta

13

O atributo a significa que o arquivo é somente para anexar: você não pode sobrescrevê-lo ou excluí-lo, apenas acrescentar dados a ele. Isso é explicado na página do manual chattr . Apenas root pode remover o atributo.

A consequência prática é que você não pode apagar suas antigas linhas de histórico. Presume-se que isso seja uma medida de segurança do administrador do sistema. Eu não estou completamente convencido de que é seguro, mas em cima da minha cabeça eu não consigo pensar em uma maneira de remover alguns dos conteúdos do arquivo. (No entanto, é fácil ignorar o arquivo e executar comandos sem que eles sejam exibidos no histórico, e é por isso que não é uma medida de segurança particularmente útil contra usuários competentes - uma maneira óbvia de executar os comandos a partir de algo diferente de bash). / p>     

por 12.10.2010 / 01:28