¿Cuáles son los permisos de root para un archivo?

¿Cuáles son los permisos de root para un archivo?

Si escribo:

ls -l file.txt

Veo que los derechos de ese archivo equivalen a "456":

  • 4 = propietario (r--)
  • 5 = grupo (rx)
  • 6 = otros (rw-)

¿Cuáles son los derechos pararaíz¿en este caso? ¿Tiene 777?

¿Se podrían cambiar los derechos para que el root tenga menos permisos que el propietario?

Respuesta1

Yo comprobaríaesta página fuera. Habla en profundidad sobre los permisos de archivos.

Pero para responder a tu pregunta directamente, no:

El superusuario "root" tiene la capacidad de acceder a cualquier archivo del sistema.

En su ejemplo, por ejemplo, si el archivo es propiedad de, por ejemplo, boby el propietario del grupo también lo es bob, verá algo como esto:

-r--r-xrw-. 1 bob bob 8 Jan 29 18:39 test.file

El tercer grupo de bits (rw) también se aplicaría a la raíz, ya que la raíz es parte del othersgrupo. Si intentaste editar ese archivo como root, verías que no tienes ningún problema para hacerlo.

Pero para probar tu teoría aún más, si el archivo fuera propiedad de root:

-r--r-xrw-. 1 root root 8 Jan 29 18:40 test.file

Y nuevamente fuiste a editar el archivo, verías que aún no tienes problemas para editarlo.

Finalmente si hiciste lo extremo:

chmod 000 test.file
ls -lh test.file
----------. 1 root root 8 Jan 29 18:41 test.file

Y fuiste nuevamente a editar el archivo que verías (al menos en vi/vim) "test.file" [readonly]. Pero aún puedes editar el archivo y forzar su guardado con :wq!.


Probando la afirmación de @Stéphane Chazelas con un archivo de script de shell:

#!/bin/sh

echo "I'm alive! Thanks root!"


[root ~]# ls -lh test.sh
----------. 1 atgadmin atgadmin 31 Jan 30 10:59 test.sh

[root ~]# ./test.sh
-bash: ./test.sh: Permission denied

[root ~]# sh test.sh
I'm alive! Thanks root!

@Shadur ya lo dijo, así que voy a citarlo en lugar de reformularlo:

Nota: Se comprueba la existencia del bit de ejecución, no si es aplicable a la raíz.

Respuesta2

Root tiene acceso completo a todos los archivos del sistema por diseño. Si está buscando proteger un archivo contra una eliminación accidental, puede usar

chattr +i file

Esto establecerá el indicador inmutable en GNU/Linux. Puedes eliminarlo con -ien lugar de +i.

En FreeBSD, puedes usar

chflags schg file

Sustituir noschgpara schgdeshacerlo.

Si desea proteger un archivo para que no sea visible para el root, debe almacenarlo en un sistema diferente o utilizar el cifrado como último recurso.

Ver también:https://superuser.com/questions/104015/eliminar-el-permiso-de-escritura-no-impide-que-la-root-escriba-en-el-archivo

Respuesta3

¿Se podrían cambiar los derechos para que el root tenga menos permisos que el propietario?

Shure, es fácil, simplemente cambie el archivo passwd para que el uid de root no sea cero. Por otro lado no hagas eso, es mala idea.

No es la primera persona que hace esta pregunta, y a algunas de esas personas se les ocurrió la idea de capacidades, pero llegaremos a eso en un momento, primero comencemos por comprender cómo funciona el sistema de permisos.

Para empezar, la parte de la computadora que realiza comprobaciones de acceso no conoce su nombre, lo conoce por número, y ese número se llama uid o identificador de usuario. de manera similar, no conoce los nombres de los grupos a los que perteneces, solo el gid. la asignación entre uid y nombre está en el archivo passwd y gid está asignada en el archivo de grupos.

Ahora, cuando desea abrir un archivo, se realizan cuatro comprobaciones: ¿tiene permiso para omitir las comprobaciones?, ¿tiene usted permiso para hacerlo como usuario?, ¿tiene permiso para hacerlo como miembro de un grupo? y, como otra persona, ¿puede hacerlo? permitido. Me estoy saltando algunas cosas aquí, como el cambio de servicio de nombres y las listas de control de acceso y la ejecución de lectura, escritura, pero la parte que le interesa es la primera prueba.

A veces se le permite omitir las pruebas de permisos de archivos. ¿Por qué? y (muy importante) ¿Cuándo? Ahora bien, hay algunas cosas que a veces es necesario hacer y que no quieres que haga cualquiera y que no encajan muy bien en el modelo de permisos de archivos. Todo tipo de cosas, como abrir una conexión de red en un puerto bajo, montar una partición u omitir comprobaciones de permisos. Hoy en día estas cosas se conocen como capacidades. En los viejos tiempos, UID0 tenía todo esto y no había nada que pudieras hacer al respecto; hoy en día puedes otorgar capacidades a otros usuarios o eliminarlas, pero el comportamiento predeterminado es el antiguo.

La otra forma de restringir el root es con algo como selinux, pero eso es otra bola de cera.

Respuesta4

¿Cuáles son los derechos de root en este caso? ¿Tiene 777?

Sí.

Como ya se indicó, los permisos de lectura y escritura no se aplican al root. Sin embargo, aún se verifica la presencia del permiso de ejecución, por lo que root no podrá ejecutar el archivo si no se ha configurado un indicador de ejecución. Este no es el caso aquí ya que el grupo tiene la xbandera.

Tenga en cuenta también que, independientemente de si se concede o no el permiso de escritura, a root o a cualquier persona se le negará el acceso de escritura a un archivo que esté almacenado en un sistema de archivos de sólo lectura.

La raíz también puede tener menos derechos que el propietario si el archivo se almacena en un directorio montado de forma remota como NFS.

Finalmente, tenga en cuenta que los permisos de enlaces simbólicos esencialmente no tienen sentido.

información relacionada