Acabo de notar en mi máquina Ubuntu (sistema de archivos ext3) que eliminar los permisos de escritura de un archivo no evita que la raíz escriba en él.
¿Es esta una regla general de permisos de archivos UNIX? ¿O específico de Ubuntu? ¿O una configuración incorrecta en mi máquina?
# touch abc # chmod ugo-w abc # python Python 2.6.4 (r264: 75706, 7 de diciembre de 2009, 18:45:15) [CCG 4.4.1] en linux2 Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información. >>> abierto ('abc', 'w'). escritura ('AAA \ n') >>> # cat abc AAA
La escritura en el archivo falla (como se esperaba) si hago esto desde mi cuenta de usuario normal.
¿Es este comportamiento normal?
¿Hay alguna manera de evitar que la raíz escriba accidentalmente en un archivo? (Preferiblemente utilizando mecanismos de sistema de archivos normales, no AppArmor, etc.)
Por favor enséñame sobre algo que definitivamente no entiendo.
NOTA: Entiendo que root tiene control total sobre el sistema y puede, por ejemplo, cambiar los permisos en cualquier archivo. Mi pregunta es si los permisos establecidos actualmente se aplican en el código que se ejecuta como root . La idea es que el usuario raíz evite que se escriba accidentalmente en un archivo.
NOTA: También entiendo que no se debe iniciar sesión como root para las operaciones normales. Acabo de notar este comportamiento y te pregunto al respecto.
fuente
chattr
. ¿Hay algún medio en modo de usuario para establecer tales atributos?root
proteger un archivo tan bien, incluso Él no puede eliminarlo".CAP_DAC_OVERRIDE
capacidad que le permite ignorar las ACL y los permisos.sudo chflags <s|u>chg <file>
hacer que sea inmutable para el sistema o usuario, respectivamente, ysudo chflags no<s|u>chg <file>
para desactivar el indicador inmutable para el sistema o usuario, respectivamente.Si, esto es normal. La raíz es dios.
Sí, hay formas de evitar que la raíz sobrescriba los archivos.
chattr
(+i
sets,-i
unsets). Requiere acceso de root, funciona solo en ext2 / ext3 (presumiblemente ext4 también), pero por lo demás es práctico.sudo
para acceder a las funciones del sistema.Estos métodos siguen lógicamente desde el n. ° 1. Como puede ver, los dos últimos métodos generalmente no son útiles, de la misma manera que proteger Windows contra virus desconectando la red generalmente no es útil. Por eso la raíz es peligrosa. [+]
[*] Descontando la posibilidad de escribir "accidentalmente" directamente en el dispositivo de bloque, por supuesto. Sí, root puede hacer eso. Sí, puede evitar eso: desconecte el dispositivo.
[+] Aquí también es de donde provienen esos mitos de BOfH. No todos son mitos.
fuente
También puede restringir el acceso a los archivos para el usuario root, utilizando las "Capacidades" del kernel de Linux: http://www.securityfocus.com/infocus/1400
También existe la posibilidad de utilizar SE-Linux o algún otro parche del kernel para hacer que algunos archivos sean inmutables incluso en la raíz.
fuente
Creo que mientras root sea el superusuario, y él pueda hacer cualquier cosa, no puedes quitarle ningún permiso, también si eres root. Se supone que es la voluntad de la raíz evitar que realice o no una operación (como escribir en un archivo o abrir una aplicación).
Entonces, no, lo más probable es que solo desactive la cuenta raíz para evitar un mal uso de la misma.
Saludos
[nota para ti: serás humilde ... tal vez estés equivocado]
fuente