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.