cuando miro
usr/bin/
directorio, vi la línea de comando con passwd
-rwsr-xr-x. 1 root root 30768 2012-02-22 20:48 /usr/bin/passwd
y permite cambiar para obtener la autoridad de root. con s.
Me preguntaba si sólo el root podría cambiar la contraseña del otro usuario con
passwd user
Quiero encontrar la ubicación de este comando y buscarlo.
¿Este comando también forma parte del directorio usr/bin/? o es algo más
lo que quiero hacer es.
me conecto
user1
y escribe
[user1] passwd user2
Por supuesto, está bloqueado de alguna manera. pero quiero saber más al respecto.
Respuesta1
Unix (y Linux) tiene el concepto derealusuario yeficazusuario. Un programa setuid como el que /usr/bin/passwd
establecerá el usuario efectivo como propietario del archivo; en este caso establece el usuario efectivo en root
.
Ahora bien, lo que haga un programa con estos permisos elevados depende del programa mismo.
En el caso del passwd
programa, si pasa un nombre de usuario, comprobará si elrealel usuario es root; Si es así, tiene éxito; de lo contrario, devuelve un error.
Entonces el root
usuario puede ejecutar /usr/bin/password user2
y esto funcionará, pero si user
ejecuta el mismo comando, falla. Sólo existe un programa, pero la forma en que funciona cambia según el usuario que lo ejecuta.
Respuesta2
El passwd
binario es suid porque necesita permiso de root para modificar el /etc/shadow
archivo. No permitirá que un usuario sin privilegios modifique la contraseña de un usuario diferente. Permitirá root
modificar la contraseña de cualquier usuario, pero no por eso es suid.