Como evitar que um diretório seja editado

0

Como evitar que um diretório (incluindo todo o seu conteúdo) seja editado?

Usando o comando chattr , você pode impedir que um diretório seja excluído:

chattr +i folder

Mas você pode editar este diretório ( folder ).

Então, como posso evitar que ele seja editado (ou seja: excluído, escrito, criando um arquivo e ...)?

Além disso, eu quero saber como evitar um diretório de qualquer coisa! Então ninguém pode deletar, editar ou até ler?

    
por Shayan 12.09.2016 / 18:42

1 resposta

1

Após chattr +i , não é possível editar o diretório. Você verá que adicionar, renomear e remover arquivos não funciona - isso é tudo o que existe em um diretório. Para evitar a edição dos arquivos, você precisa chattr +i deles também. (Lembre-se: o Unix possui hardlinks; um único arquivo pode existir em vários diretórios.)

Dependendo do que você está tentando realizar, uma montagem de ligação somente leitura pode fazer o que você deseja. Você pode fazer um assim:

# mount --bind /source/path /dest/path -o ro

Agora, qualquer acesso via /dest/path não poderá alterar os arquivos e diretórios (mas o acesso via /source/path ainda pode). Você pode impedir o acesso à origem das formas normais (por exemplo, dentro de algum diretório com permissões go-x set).

Ou talvez o que você esteja fazendo funcione se você simplesmente remover a permissão de gravação, de forma recursiva, com um simples chmod -R o-w the-directory .

Also, i want to know how to prevent a directory from anything! So no one can delete, edit, or even read it?

wipe , shred ou mesmo rm seriam os modos normais. Ok, isso é um pouco sarcástico. Se você quer dizer ninguém além de si mesmo, então chmod go-rwx the-directory . Se você quer dizer nem mesmo root, então a melhor aposta é colocá-lo em alguma mídia removível e removê-lo. Se você precisa mantê-lo on-line, o SELinux pode fazer isso, mas isso adiciona muita complexidade.

    
por 12.09.2016 / 19:37