chattr: A proteção máxima de arquivos / pastas no Linux por atributos ou sinalizadores

Bom ... nem tudo podem ser jogos, não é minha intenção publicar só posts falando de jogos 😉 ... Eu não sou um usuário que joga muito, em casa deixo isso para minha namorada (que agora está viciado em Sims 4), por isso me motiva mais a publicar mais artigos técnicos, sobre comandos ou dicas em terminal.

No Linux, temos alguns autorizações o que certamente resolve quase qualquer problema, podemos determinar qual usuário ou grupo de usuários tem acesso a um determinado recurso, pasta, serviço. Porém, há momentos em que as permissões não são exatamente o que precisamos, pois há situações em que queremos até que o root não seja capaz de realizar uma determinada ação.

Suponha que temos uma pasta ou arquivo que não queremos que seja apagado, vamos lá ... nem pelo nosso usuário, nem por outro no computador (ehm ... minha namorada por exemplo haha), ou nem mesmo o root pode deletar, como fazer isso? ... as permissões não vão nos ajudar porque o root é a porra do mestre, ele pode deletar qualquer coisa, então é aí que entram os atributos de arquivo ou pasta.

chattr + i

Suponha que desejamos proteger um arquivo para que ele não possa ser excluído, é: senhas.txt , sua localização é (por exemplo) $ HOME / passwords.txt

Para definir um atributo somente leitura (ou seja, sem modificação e sem exclusão), seria:

sudo chattr +i $HOME/passwords.txt

Como você pode ver, precisamos de permissões de administração para o parâmetro + i, que a propósito, + i significa que o arquivo será imutável, você sabe, não pode ser excluído, não pode mudar em nenhum sentido.

Então, eles podem tentar deletar o arquivo, mesmo usando sudo ... vão ver que não vão conseguir, aqui está uma imagem:

chattr_1

Para listar ou ver os atributos de um arquivo podemos usar o comando lsattr, por exemplo:

lsattr passwords.txt

Então, para remover a proteção em vez de usar +i nós usamos -i e voila 😉

chattr + a

Como acabamos de ver, o parâmetro + i nos permite protegê-lo completamente, mas houve momentos em que preciso que um determinado arquivo seja modificado, MAS sem alterar seu conteúdo original. Por exemplo, eu tenho uma lista e quero que novas linhas e informações sejam adicionadas usando echo, mas sem alterar as anteriores, para isso:

sudo chattr +a $HOME/passwords.txt

Feito isso, vamos tentar escrever algo novo no arquivo:

echo "Prueba" > $HOME/passwords.txt

Você notará que obterá um erro ... no entanto, se adicionarmos conteúdo em vez de substituir (usando >> e não>):

echo "Prueba" >> $HOME/passwords.txt

Aqui podemos.

O fim!

Sei que alguém com conhecimento ao ver que mesmo com root pode deletar / modificar um arquivo poderia verificar seus atributos ... mas, hey! (…) Quantas vezes, ao notar algo assim, você para para pensar em atributos? ... Digo isso porque geralmente simplesmente pensamos que o HDD ou seu setor está corrompido, ou que o sistema simplesmente enlouqueceu 😀

Bem, não há muito mais a acrescentar ... Acho que vou usar isso de +i para parar o download de algo que minha namorada está baixando ... ¬_¬ ... ehm ... ela não queria baixar sims 4 livre? ... Acho que vou te ensinar uma ou duas coisas sobre licenças e que elas não devem ser violadas

Saudações!


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   cessar dito

    Interessante saber sobre esta ferramenta, e se me causar alguma curiosidade, de uma forma que não seria algo parecido com permissões de bits? Ou seja, setuid, setgid e sticky bit? Se não, por quê? Oo

    PS: Perdi a conta das vezes que você fala minha namorada neste artigo hahaha

    1.    Hugo dito

      Bem, este também é um bit, o bit de imutabilidade, e é projetado para que ninguém possa modificar ou deletar o arquivo ao qual se aplica (nem mesmo root). Eu o uso, por exemplo, para proteger contra gravação arquivos de configuração, o que é especialmente útil em distribuições como Zentyal (é uma maneira muito mais rápida de personalizar a configuração do que editar ou criar modelos).

      Combinando este comando com chown, chmod e setfacl, coisas interessantes podem ser realizadas.

      O FreeBSD tem algo semelhante, que também uso no meu pfSense.

    2.    banheiro dito

      Hahaha é uma fase conhecida.
      http://www.xkcd.
      com / 684 /

  2.   niandekuera dito

    [Dr. Bolivar Trask] $ sudo chattr + i * .human

  3.   Tesla dito

    Muito bom pedido. Eu não a conhecia

    Pode ser muito útil se compartilharmos um PC ou se tivermos um determinado documento no qual estamos trabalhando e que não queremos excluir de forma alguma.

    Obrigado e cumprimentos!

  4.   Luis dito

    Muito interessante.

    Algo semelhante poderia ser feito para que o ROOT não acesse uma determinada pasta em nossa página inicial?

    1.    Tesla dito

      De acordo com o artigo, com este comando nem mesmo o root pode acessar o arquivo. Acho que o mesmo se aplica às pastas, já que no Linux as pastas também são arquivos, certo?

  5.   Joaquin dito

    Que coincidência. Este fim de semana, tentei excluir uma partição raiz e não consegui excluir um arquivo do diretório / boot. Pesquisando encontrei os atributos, honestamente não os conhecia e agora entendo que a questão das permissões e atributos em um arquivo é muito grande. Este é um dos comandos essenciais que devemos saber, junto com "chmod" e "chown".

  6.   águatemala dito

    Isso é extremamente útil, especialmente se, por exemplo, quisermos alterar o DNS padrão de nosso respectivo ISP, e é quando devemos modificar o arquivo /etc/resolv.conf e para fazer isso devemos fazer chattr -i / etc / resolv.conf, modifique os IPs que aparecem para aqueles de nosso DNS gratuito e / ou gratuito (como os do OpenDNS 208.67.222.222 e 208.67.220.220 ou os do Google 8.8.8.8 e 8.8.4.4) e após ter modificado o arquivo redo chattr + i /etc/resolv.conf para que o arquivo não seja modificado quando a máquina for inicializada.
    Ótimo artigo ... e por falar nisso, sua namorada é como minha esposa, tão viciada em jogos, hahahahaha

  7.   rawBasic dito

    Claramente, 'a porra do mestre' é sua namorada nesta situação. xD