¿Cómo puede el usuario root crear un archivo / directorio que no se puede escribir por sí mismo?

8

Los usuarios normales pueden chmodarchivos para hacerlos inaccesibles como

evgeniy@ubuntu:~$ touch test
evgeniy@ubuntu:~$ chmod 444 test
evgeniy@ubuntu:~$ echo 'test' > test
bash: test: Permission denied

¿Se puede simular algo como esto para el usuario root?

dolzenko
fuente
Espero que no, o estoy seguro de hacerlo.
Mark Allen
Siga adelante y verifique la respuesta de @ danlefree;)
dolzenko

Respuestas:

13

chattr +i *evitará que incluso la cuenta raíz realice cambios en los archivos del directorio (hasta que chattr -i *se ejecute).

Según los comentarios de Slartibartfast, algunas cosas que debe saber sobre chattr y el atributo inmutable:

  1. El bit inmutable evitará que un archivo sea eliminado, renombrado, vinculado o escrito; se usa lsattrpara mostrar atributos de la misma manera que lsmuestra la propiedad y los permisos
  2. Puede evitar que el bit inmutable se desarme (incluso por root) cambiando el CAP_LINUX_IMMUTABLEindicador; para hacerlo, querrá instalar libcap , pero es una advertencia justa de que las capacidades están mal documentadas (en el mejor de los casos)
danlefree
fuente
Vale la pena mencionar para ayudar a las personas a encontrar esta respuesta que chattr + i hace que el archivo sea inmutable.
Slartibartfast
5

SELinux se puede usar para marcar un archivo como no escribible por root en el dominio actual y la función de usuario.

Ignacio Vazquez-Abrams
fuente
Proporcionar un ejemplo sería genial
Jonathan