Saltar al contenido

sudo con contraseña en una línea de comando?

Sofía, miembro de este equipo de trabajo, nos ha hecho el favor de escribir esta crónica porque conoce a la perfección el tema.

Solución:

Sí, usa el -S interruptor que lee la contraseña de STDIN:

$echo  | sudo -S 

Así que para tu caso se vería así:

$./configure && make && echo  | sudo -S make install && halt

por supuesto, reemplaza con tu contraseña

Establezca HISTORIAL en “sudo -S

$ export HISTIGNORE='*sudo -S*'

Luego pase su contraseña de forma segura a sudo:

$ echo "your_password" | sudo -S -k 

“HISTIGNORE” significa no guardar este comando en el historial. Ese es el historial en la memoria o el archivo “~/.bash_history”.

Por ejemplo, lo siguiente canalizará de forma segura su contraseña al comando sudo, sin conservar un historial de su contraseña.

“-S”, significa usar stdin para la contraseña,

“-k” significa ignorar las credenciales almacenadas en caché para obligar a sudo a preguntar siempre. Esto es para un comportamiento consistente.

$ export HISTIGNORE='*sudo -S*'
$ echo "" | sudo -S -k whoami
$ echo "" | sudo -S -k cat /etc/shadow
$ echo "" | sudo -S -k bash /tmp/myscript.sh

La desventaja del método anterior es que si desea ver los comandos que ejecutó en el historial más adelante, no estarán allí. Otro método es actualizar la caché de credenciales de autenticación de sudo (la opción predeterminada está habilitada con un tiempo de espera de 5 minutos) y luego ejecutar sudo por separado. Pero la desventaja de esto es que deberá tener en cuenta el caché de 5 minutos.

Por ejemplo:

$ export HISTIGNORE='*sudo -S*'
$ echo "" | sudo -S -v
$ sudo whoami
$ echo "" | sudo -S -v
$ sudo cat /etc/shadow
$ echo "" | sudo -S -v
$ sudo /tmp/myscript.sh

Tenga en cuenta que ejecuté un sudo antes de cada comando para asegurarme de que el caché de sudo se actualice, ya que el valor predeterminado es de 5 minutos. Sí, whoami no debería tomar 5 minutos, pero creo que también podría ejecutarlo antes de cada comando para mantener la coherencia. También podría poner “exportar HISTIGNORE=’sudo -S‘” en su archivo ~/.bashrc, luego cárguelo con “. ~/.bashrc” o cerrar sesión y luego iniciar sesión. Sin embargo, estoy pensando en usar esto para propósitos de secuencias de comandos, por lo que lo mantendré en la parte superior de todas mis secuencias de comandos para las mejores prácticas de seguridad. Configuración de “echo “” | sudo -S -v” a una variable también podría ser una buena idea, luego simplemente ejecute la variable antes de cada comando que necesita privilegios de root, vea el comentario de Janar. El comentario de “John T” también debe incluir el parámetro “-k”. , como si ejecuta “sudo -S” sin “-k” y el caché de autenticación de sudo ya tiene sus credenciales (y aún es válido, el caché de autenticación de sudo predeterminado es de 5 minutos), entonces bash ejecutará su contraseña como un comando en su lugar, que es malo.

También puede configurar sudo con visudo para permitirle al usuario usar make como sudo sin contraseña.

User_Alias USERS = your_user
Cmnd_Alias CMDS = /usr/bin/make
USERS ALL = (ALL) NOPASSWD: CMDS

Comentarios y calificaciones del artículo

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *