GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo evitar la solicitud de contraseña para Sudo para secuencias de comandos crontab?

Necesito que un nuevo usuario pueda ejecutar sudo sin ninguna solicitud de contraseña, porque este usuario tiene en crontab un .sh que usa sudo para algunos comandos.

Creé un nuevo usuario en mi servidor ubuntu 16.04 x64

adduser my-user sudo
gpasswd -a my-user sudo

Luego usando visuo agregué esta línea, basado en esta pregunta

my-user ALL=(ALL) NOPASSWD : ALL

Luego reiniciado

Después de reiniciar, inicié sesión usando my-user e intenté hacer sudo clear, pero me pidió la contraseña de sudo.

NOTA :Agregué el crontab usando crontab -e my-user así que supongo que mi script se ejecuta como my-user . De hecho, el script crontabbed falla y me dice en el registro sobre un sudo solicitud de contraseña. Realmente necesito ejecutar el script de esta manera para poder crear un archivo con my-suer como propietario.

Dígame si algunos pasos/líneas no fueron necesarios y cómo habilitar my-user para ejecutar sudo sin solicitud de contraseña.

Gracias

PD:vi esta pregunta, pero no puedo hacer que funcione, así que necesito una explicación más precisa, porque mi situación es diferente:estoy ejecutando un script crontab y lo necesito, no pida la contraseña de sudo

Respuesta aceptada:

A veces, ejecutar un proceso desde el crontab de root puede causar problemas con la propiedad inicial del archivo y rwx modo; es posible que no se conserven correctamente.

En cualquier caso:

1) para crear un nuevo usuario, mantenlo simple:

 $ sudo deluser my-user  # if "my-user" is a regular user
 $ adduser my-user
 $ sudo gpasswd -a my-user sudo

2) para incluir una nueva entrada con un NOPASSWD etiqueta en sudoers o en un archivo (por ejemplo, /etc/sudoers.d/60_my-user_rules ), haga que los dos puntos se adhieran a la etiqueta, es decir, NOPASSWD:
No lo he visto antes con espacio intercalado y su regla se convierte en:

 my-user my-host = NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]

Agregando (ALL) antes del NOPASSWD: es opcional ya que la regla predeterminada es (ALL:ALL) de todas formas. Sin embargo, es posible que desee no solo ejecutar su cmd/script con privilegios de raíz, sino también ejecutarlo como un usuario determinado (spec-user ) o como miembro de un grupo dado (spec-group ) o ambos. En ese caso, la regla se convierte en:

 my-user my-host = ([spec-user][:spec-group]) NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]

Esto en realidad restringirá su disposición de sudo sin contraseña a un usuario, un host y un comando. Puede endurecer esta regla especificando los parámetros opcionales para ese comando. En ese caso, la regla se aplicará solo para ese/esos parámetros exactos.
Para las secuencias de comandos, puede endurecer aún más esta regla asegurándose de que la regla se aplique solo si la secuencia de comandos no se modificó de ninguna manera. . Esta es una forma de evitar el secuestro de scripts. Esto se hace mediante cmd-aliasing y especificando SHA-sums en /etc/sudoers.d/60_my-user_rules .

HH. Informe si tiene problemas con esa respuesta.

Relacionado:¿Copia de seguridad completa de iPhone sin iTunes?
Ubuntu
  1. Cómo hacer que sudo recuerde la contraseña por más tiempo

  2. Cómo cambiar el tiempo de espera de la contraseña de Sudo

  3. Cómo restablecer la contraseña para sudo en Debian

  4. ¿Cómo eliminar el requisito de contraseña de Ubuntu?

  5. ¿Cómo hago que Sudo solicite la contraseña de root?

Cómo especificar el límite de tiempo para una sesión de Sudo en Ubuntu 20.04 LTS

Cómo ejecutar comandos Sudo sin contraseña

Cómo cambiar el tiempo de espera de la contraseña de Sudo en Ubuntu

Cómo instalar el entorno de desarrollo de Python 3 para Ubuntu Linux

¿Cómo configurar Pkexec para que no solicite la contraseña?

Cómo ejecutar comandos sudo sin contraseña