Nuestro servidor de prueba está en una instancia de Amazon EC2. Cuando ingresa a él, puede ejecutar un sudo
comando o sudo su
sin tener que ingresar una contraseña.
¿Hay alguna forma de solicitar una contraseña a un usuario cuando intenta ejecutar un comando sudo
? Tengo un desarrollador externo que necesita acceso y quiero restringirle los privilegios de root.
Intenté establecer una contraseña sudo passwd
pero todavía no la necesito.
~$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
~$ sudo su
/home/ubuntu# exit
~$ sudo passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
~$ sudo su
/home/ubuntu#
ACTUALIZAR
Intenté solicitar la contraseña ejecutando sudo visudo
y agregando:
ubuntu ALL=(ALL) ALL
¡Ahora me piden una contraseña pero la que configuré no funciona! Afortunadamente, creé una AMI antes de comenzar con todo esto.
¿Podría el problema ser que no tengo una contraseña establecida para el ubuntu
usuario? Debería haber ejecutado sudo passwd ubuntu
en lugar de sudo passwd root
.
SOLUCIÓN FINAL
Sólo para aclarar, mi error fue que configuré la contraseña para el usuario equivocado, intenté configurarla pararaízmientras que debería haberlo configurado paraubuntucon:
~$ sudo passwd ubuntu
Y luego actualizando/etc/sudoersde manera que laubuntuEl usuario debe proporcionar su contraseña al ejecutar un sudo
comando. Para editar este archivo debes ejecutar sudo visudo
y agregar:
ubuntu ALL=(ALL) ALL
Respuesta1
Si tienes una línea como
ALL ALL=(ALL) NOPASSWD:ALL
en /etc/sudoers, esto permitirá a todos los usuarios realizar sudo sin que se les soliciten contraseñas. Si descomentas esta línea tendrás que especificar qué usuarios pueden usar sudo, por ejemplo
myuser ALL=(ALL) ALL
Respuesta2
Sudo almacenará en caché sus credenciales, de modo que si lo usa varias veces en un período corto de tiempo, solo le pedirá su contraseña la primera vez.
La página de manual dice:
timestamp_timeout
Number of minutes that can elapse before sudo will
ask for a passwd again. The timeout may include a
fractional component if minute granularity is
insufficient, for example 2.5. The default is 5.
Set this to 0 to always prompt for a password. If
set to a value less than 0 the user's time stamp
will never expire. This can be used to allow users
to create or delete their own time stamps via "sudo
-v" and "sudo -k" respectively.
Entonces, si siempre desea solicitar una contraseña, simplemente escriba sudo visudo
para editar el archivo. Añade esta línea:
Defaults timestamp_timeout=0
Esto requerirá que se ingrese una contraseña para todos los comandos sudo.