¿Cuál es la diferencia entre los dos comandos? ¿Cuál es mejor para emular a otro usuario cuando se quiere hacer algo como ese usuario?
sudo -H -iu USER command
y
su -l USER -c command
Respuesta1
Si está intentando ejecutar un comando como otro usuario, sudo
le pedirá su contraseña y su
le pedirá la contraseña del otro usuario.
Sudo está diseñado para permitir que usuarios sin privilegios ejecuten comandos específicos como un usuario diferente, por lo que tiene un archivo de configuración /etc/sudoers
que permite a los administradores del sistema decidir qué usuarios pueden ejecutar qué comandos y qué otros usuarios. Es decir, tiene permisos detallados. Estos permisos se pueden conceder y luego revocar.
Su también le permite ejecutar un comando como otro usuario, pero no está diseñado con los mismos permisos detallados. Si tiene la contraseña del otro usuario, puede hacer cualquier cosa como ese usuario. La única forma de revocar ese acceso es cambiar la contraseña del otro usuario.
Alerta de opinión
sudo
Generalmente no lo usaría su
para la mayoría de las cosas. Es más fácil darle a alguien un pequeño acceso sin solo darle las claves de todo (tu contraseña)
Opinión final
No hay mucha diferencia en el efecto al intentar "simular" a otro usuario. Ambos ejecutan su comando como ese usuario.