O mais fácil é provavelmente usar chattr
:
sudo mkdir /home/user/somedir
sudo chown root:root /home/user/somedir
sudo chattr +i /home/user/somedir
Como posso impedir que um usuário mova / renomeie um subdiretório deste diretório pessoal?
Mesmo que um usuário não tenha nenhum direito em um diretório, ele pode renomeá-lo / movê-lo, desde que o diretório pai de origem e destino seja gravável.
Eu tive um problema semelhante no macosx. Os usuários inadvertidamente arrastam e soltam a pasta "Biblioteca" em outro lugar, quebrando tudo, pois há aplicativos que dependem desse caminho.
Eu não seria melhor depender de outro caminho, fora do diretório home, ou usar ".files", mas tenho uma situação de legado.
Eu tentei consertar o problema, colocando o dir em outro lugar e depois fazendo uma montagem "bind"
mount -o bind sourcepath /home/user/somedir
Evita a renomeação do diretório:
mv: cannot move 'somedir' to 'somethingelse': Device or resource busy
Alguém sabe de uma maneira mais fácil?
O mais fácil é provavelmente usar chattr
:
sudo mkdir /home/user/somedir
sudo chown root:root /home/user/somedir
sudo chattr +i /home/user/somedir