Soy relativamente nuevo en los conceptos mencionados en la pregunta y leer sobre ellos de diferentes fuentes solo los hace más confusos. Entonces esto es lo que entendí hasta ahora:
Cuando se nos dan permisos para un archivo, se ven así:
-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin
Suponemos que un usuario user2
que está en el grupo users
intenta ejecutar file.bin
. Si el bit setuid no estuviera establecido, esto significaría que tanto el RUID como el EUID de file.bin
eran iguales al UID de user2
. Pero ya que se establece el bit setuid, esto significa que el RUID es ahora igual a la UID de user2
, mientras que EUID es el UID del propietario del archivo, user1
.
Mis preguntas son:
- ¿Cuál es la diferencia entre el propietario del archivo y
root
? ¿root
Tiene los mismos permisos que el propietario? ¿O necesitaríamos una entrada separada en la lista de permisosroot
? - ¿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 los ID de usuario?
- Si RUID es el usuario que crea el proceso, y EUID es el usuario que actualmente ejecuta el proceso, 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?
setuid
bit establecido.root
) puede establecer EUID y RUID a valores arbitrarios (por ejemplo, ellogin
,su
ysudo
los programas de hacerlo). En general, una vez que un proceso privilegiado cambia sus UID a valores distintos de cero, ya no tiene privilegios y no puederoot
volver a serlo . Consulte las páginas de manual setuid (2) , seteuid (2) y setreuid (2) .setfsuid()
hoy en día no es necesario y debe evitarse en nuevas aplicaciones".