GNU/Linux >> Tutoriales Linux >  >> Linux

¿Diferencia entre propietario/raíz y Ruid/euid?

Soy relativamente nuevo en los conceptos mencionados en la pregunta y leer sobre ellos de diferentes fuentes solo los hace más confusos. Así que esto es lo que entendí hasta ahora:

Cuando se nos otorgan permisos para un archivo, se ven así:

-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin

Suponemos que un usuario user2 quién está en el grupo users intenta ejecutar file.bin . Si no se estableciera el bit setuid, esto significaría que tanto el RUID como el EUID de file.bin eran iguales al UID de user2 . Pero dado que el bit setuid está configurado, esto significa que el RUID ahora es igual al UID de user2 , mientras que EUID es el UID del propietario del archivo, user1 .

Mis preguntas son:

  1. ¿Cuál es la diferencia entre el propietario del archivo y root? ? Hace root ¿Tiene los mismos permisos que el propietario? ¿O necesitaríamos una entrada separada en la lista de permisos para root? ?
  2. ¿Diferencia entre RUID y EUID?
    • Según tengo entendido, el RUID y el EUID se aplican solo a los procesos. Si ese es el caso, ¿por qué tienen el valor de identificación de usuario?
    • Si RUID es el usuario que crea el proceso y EUID es el usuario que está ejecutando el proceso actualmente, entonces la primera oración de la primera respuesta en esta pregunta no tiene ningún sentido para mí.
    • ¿Entendí correctamente lo que hace el bit setuid?

Respuesta aceptada:

Aquí están las respuestas:

  1. root siempre lleno Acceso a archivos y directorios. El propietario del archivo suele tenerlos también, pero esto no siempre es así. Por ejemplo:

    -r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin
    

    user1 es el propietario; sin embargo, solo pueden leer y ejecutar , pero root todavía tiene acceso completo (rwx ) al archivo.

  2. RUID es el ID de usuario real y nunca (casi) cambia. Si user2 inicia sesión en el sistema, el shell se inicia con su ID real establecido en user2 . Todos los procesos que inician desde el shell heredarán el ID real user2 como su identificación real.

    EUID es la ID de usuario efectiva , cambia para los procesos (no para el usuario) que ejecuta el usuario que han establecido el bit setuid .

    Si user2 ejecuta file.bin , el RUID será user2 y el EUID del proceso iniciado será user1 .

Usemos el caso de passwd :

-rwsr-xr-x 1 root root 45396 may 25  2012 /usr/bin/passwd
  • Cuando user2 quiere cambiar su contraseña , ejecutan /usr/bin/passwd .

  • El RUID será user2 pero el EUID de ese proceso será root .

  • user2 puede usar passwd para cambiar solo su propia contraseña porque internamente passwd comprueba el RUID y, si no es root , sus acciones se limitarán a la contraseña del usuario real.

  • Es necesario que el EUID se convierta en root en el caso de passwd porque el proceso necesita escribir a /etc/passwd y/o /etc/shadow .


Linux
  1. ¿Diferencia entre Shell de inicio de sesión y Shell sin inicio de sesión?

  2. ¿La diferencia entre [[ $a ==Z* ]] y [ $a ==Z* ]?

  3. ¿Diferencia entre 2>&-, 2>/dev/null, |&, &>/dev/null y>/dev/null 2>&1?

  4. ¿Cuál es la diferencia entre Sudo Su y Sudo Su?

  5. ¿Diferencia entre Eot y Eof?

Explicación de la diferencia entre apt y apt-get

¿La diferencia entre Nss y Pam?

Diferencia entre GNUWin32 y cygwin

diferencia entre netstat y ss en linux?

Diferencia entre ${} y $() en Bash

diferencia entre cgroups y espacios de nombres