¿Ejecutar sudo sin contraseña?

219

Inspirada en esta pregunta ....

Soy la única persona que usa mi sistema con 12.04.
Cada vez que publico un comando sudo ; el sistema solicita la contraseña del usuario (que es buena a su manera).
Sin embargo, estaba pensando; sin activar la cuenta raíz ; ¿Cómo puedo ejecutar los comandos sudo que no solicitarán la contraseña del usuario para autenticarse?

NOTA: Deseo ejecutar el comando sudo sin autenticar a través de la contraseña; solo cuando se ejecutan a través del terminal.
No quiero eliminar esta capa adicional de seguridad de otras funciones, como por ejemplo usar 'Ubuntu software center' o ejecutar un script bash arrastrando y soltando el archivo something.sh en la terminal.

    
pregunta Z9iT 06.06.2012 - 14:30

7 respuestas

63

sudo -i es el camino a seguir si no desea escribir una contraseña cada 10 minutos mientras realiza modificaciones en su sistema (u otros sistemas), y no desea modificar ningún archivo del sistema.

Te cambiará a la raíz usando la contraseña de sudo user, cuando cierras la consola o escribes exit estás de vuelta con tu usuario normal.

    
respondido por el Bruno Pereira 06.06.2012 - 15:36
438

El enfoque para resolver su problema es poner a su usuario en el archivo sudoers, como puede ver.

Abre la ventana de terminal y escribe:

sudo visudo

En la parte inferior del archivo, escriba lo siguiente:

$USER ALL=(ALL) NOPASSWD: ALL

Donde $USER es tu nombre de usuario en tu sistema. Guarde y cierre el archivo sudoers (si no ha cambiado su editor de terminal predeterminado (sabrá si lo ha hecho), presione ctl + x para salir de nano (pero tenga en cuenta que la captura de pantalla siguiente muestra vim ), y le pedirá que guarde).

]

Después de esto, puede, en la ventana de terminal, escribir sudo <Whatever you want> , sin que se le solicite la contraseña.

Esto solo se aplica al comando sudo en la ventana del terminal. Por ejemplo, cuando intente instalar un paquete en un centro de software, se le pedirá que inserte su contraseña, como puede ver en la siguiente captura de pantalla.

Creo que esto es lo que quieres.

    
respondido por el Octávio Filipe Gonçalves 06.06.2012 - 15:20
30

Los tiempos de espera de root sudo son la manera más fácil y segura de hacerlo. Expondré todos los ejemplos, pero ten en cuenta que es muy arriesgado de cualquier forma que hagas esto, aunque de esta manera es mucho más seguro:

sudo visudo

Esto abre un editor y lo apunta al archivo sudoers - Ubuntu por defecto es nano, otros sistemas usan Vi. Ahora eres un súper usuario que está editando uno de los archivos más importantes de tu sistema. Sin estrés!

(Vi instrucciones específicas señaladas con (vi!) . Ignora estas si estás usando nano.)

Utiliza las teclas de flecha para desplazarte hasta el final de la línea Defaults .

(vi!) presione la tecla A (mayúscula "a") para moverse al final de la línea actual e ingrese al modo de edición (anexe después del último carácter en la línea).

Ahora escriba:

,timestamp_timeout=X

donde X es la expiración del tiempo de espera en minutos. Si especifica 0, siempre se le preguntará la contraseña. Si especifica un valor negativo, el tiempo de espera nunca caducará. P. ej. Defaults env_reset,timestamp_timeout=5 .

(vi!) pulse Escape para volver al modo de comando. Ahora, si está contento con su edición, escriba :w Enter para escribir el archivo y :q Enter para salir de vi. Si cometió un error, quizás la forma más fácil es rehacer desde el inicio, salir sin guardar (presionar Escape para ingresar al modo de comando) y luego escribir: q! Ingrese .

Pulse Ctrl + X , luego Y , luego Introduzca para guardar su archivo y salir de nano.

Es posible que desee leer las páginas de manual de sudoers y vi para obtener información adicional.

man sudoers
man vi

Restablecer el valor de tiempo de espera usando:

sudo -k

Estas instrucciones son para eliminar la solicitud de una contraseña cuando se usa el comando sudo. Sin embargo, el comando sudo aún deberá ser utilizado para el acceso raíz.

Editar el archivo sudoers

Abre una ventana de Terminal. Escriba en sudo visudo . Agregue la siguiente línea al FIN del archivo (si no es así, puede anularlo con entradas posteriores):

<username> ALL=NOPASSWD: ALL

Reemplaza <username> con tu nombre de usuario (sin el <> ). Esto supone que Ubuntu ha creado un grupo con el mismo nombre que su nombre de usuario, que es típico. Puede utilizar alternativamente los usuarios del grupo o cualquier otro grupo en el que se encuentre. Solo asegúrese de estar en ese grupo. Esto se puede verificar yendo a Sistema - & gt; Administración - & gt; Usuarios y grupos.

Ejemplo:

michael ALL=NOPASSWD: ALL

Teclee ^ X ( Ctrl + X ) para salir. Esto debería solicitar una opción para guardar el archivo, escriba Y para guardar.

Cierre sesión y vuelva a iniciar sesión. Esto debería permitirle ejecutar el comando sudo sin que se le solicite una contraseña.

La cuenta raíz

Habilitando la cuenta raíz

La habilitación de la cuenta raíz rara vez es necesaria. Casi todo lo que necesitas hacer como administrador de un sistema Ubuntu se puede hacer a través de sudo o gksudo. Si realmente necesita un inicio de sesión raíz persistente, la mejor alternativa es simular un shell de inicio de sesión raíz con el siguiente comando:

sudo -i

Sin embargo, si debes habilitar los inicios de sesión raíz, puedes hacerlo así:

sudo passwd root

Rehabilitación de su cuenta raíz

Si por alguna razón ha habilitado su cuenta raíz y desea desactivarla nuevamente, use el siguiente comando en la terminal:

sudo passwd -dl root

Sudo del grupo en todo el sistema

root$ echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Cerrar sesión y luego volver a entrar.

Restablecer el tiempo de espera de sudo

Puede asegurarse de que sudo solicite la contraseña la próxima vez ejecutando:

sudo -k
    
respondido por el user209328 30.10.2013 - 02:15
10

La forma preferida de otorgar permisos individuales (o grupales) sería agregar archivos bajo /etc/sudoers.d

Esto separa los cambios locales de la política predeterminada y ahorra tiempo en caso de que el archivo de sudoers de distribución cambie.

Por ejemplo:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/username

Dejará muy claro a qué usuarios se les otorga permiso.

Del mismo modo, un archivo se puede usar para administrar varias directivas:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/local

Consulte /etc/sudoers.d/README para obtener más información.

    
respondido por el user1656671 01.02.2017 - 16:54
5

Un buen trazador de líneas para eliminar las solicitudes de sudo para el usuario actual

sudo bash -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)'
    
respondido por el Eric Landry 27.06.2016 - 19:50
4

Por supuesto, lo que quieres hacer no es recomendable. Después de un tiempo, aunque ingresar sudo se vuelve tan automático que su utilidad disminuye.

Otro enfoque es dejar el archivo de sudoers como está y, mientras se hace algo complicado para sus miles de servidores, ingrese sudo bash . Eso le dará un shell que se autenticará como root hasta que salga de él.

    
respondido por el John S Gruber 06.06.2012 - 15:27
1

De Superusuario viene una buena respuesta:

Utilice el modificador -S que lee la contraseña de STDIN:

echo <password> | sudo -S <command>

Reemplaza <password> con tu contraseña.

    
respondido por el WinEunuuchs2Unix 17.05.2018 - 02:12

Lea otras preguntas en las etiquetas