Para la operación básica, ejecutar comandos como root, la diferencia más visible entre sudo y su es que sudo requiere la contraseña del usuario llamante (es decir, su contraseña) mientras que su requiere la contraseña del usuario objetivo (es decir, la contraseña de root). Las implicaciones de seguridad se han discutido ampliamente en una pregunta anterior: ¿Cuál es la forma más segura de obtener privilegios de root: sudo, su o login? .
Sudo tiene características adicionales más allá de su. En particular, una vez que tenga la contraseña de un usuario, puede ejecutar cualquier comando como ese usuario. Por otro lado, sudo se puede configurar para que el usuario que lo invoca solo pueda ejecutar comandos específicos como otro usuario. Esto es posible porque sudo no requiere ninguna autenticación (aparte de confirmar que usted es usted escribiendo su contraseña, pero eso es sutilmente diferente de autenticar a su usuario para una tarea).
Cambia la configuración de sudo ejecutando el visudo
comando como root (nunca edite la configuración directamente). Asegúrese de que la variable de entorno EDITOR
o VISUAL
esté configurada en su editor favorito o puede obtener un editor desconocido. La sudoers
página de manual es un poco breve pero tiene ejemplos. Para permitir que el usuario bob
ejecute /bin/foo
(con cualquier número de argumentos) y /bin/bar --safe
(pero no con ningún otro argumento) como root
, use las siguientes líneas:
bob ALL = (root) /bin/foo
bob ALL = (root) /bin/bar --safe
Gilles 'SO- deja de ser malvado'
fuente
sudo
es un invento increíbleapache2ctl graceful
no sea , creo que preferiría cortarme las muñecas y terminar de una vez.La mayor diferencia es que con
sudo
usted no necesita la contraseña de root para ejecutar un comando como root, como lo haría parasu
. Necesita la contraseña de root para agregar a alguien alsudoers
archivo, pero a partir de entonces esa persona puede ejecutar todo o algo (si lo ha restringido) como root sin requerir una contraseña adicional.La otra diferencia es, como ha notado, que
sudo
permite un control mucho más preciso sobre exactamente qué comandos se pueden ejecutar.Para detalles del formato del
sudoers
archivo ejecutadoman sudoers
. Encontrarás ejemplos de permitir que solo ciertos comandos se ejecuten como root. La estructura básica de cada línea es:cmd_list puede incluir detalles de a qué usuario se le permite cambiar al usuario real. Por ejemplo, puede permitir que un webmaster cambie a wwwroot para reiniciar apache pero no a root. También puede incluir otras opciones, como si se requiere la contraseña de los usuarios antes de cambiar (este es el valor predeterminado).
Una línea de ejemplo podría ser:
lo que significa: dejar que Joe ejecute cualquier comando en cualquier host como cualquier usuario. Una línea más apretada podría ser:
lo que significa: dejar que Joe ejecute cualquier comando en el directorio / usr / local / ops como el "operador" del usuario.
Hay muchos ejemplos al final de la página de manual de sudoers.
Deberías editar
/etc/sudoers
con el comandovisudo
. Esto verifica que el archivo sea legal y ayuda a evitar que lo rompa accidentalmente.fuente
sudoers
esté configurado el archivo. Se puede configurar para requerir una contraseña o configurar para no requerir una contraseña.Además de las otras respuestas, sudo proporciona funciones de registro para que pueda realizar un seguimiento de qué comandos se ejecutaron y por quién. Esto no es por motivos de seguridad, ya que un usuario malintencionado que obtiene acceso a sudo puede borrar el registro. Sin embargo, es muy útil averiguar exactamente lo que usted o algún otro administrador hizo con ojos cansados a las 2 am la semana pasada.
fuente