Solución:
No voy a entrar en cuánto es una mala idea; en pocas palabras, corriendo sudo
en crontab requiere que su contraseña se almacene en algún lugar en texto sin formato.
Es una mala idea.
El siguiente es el método preferido para ejecutar tareas administrativas a través de cron. Ya que realmente no necesitas escribir sudo
en el crontab, si está modificando el crontab de root.
Usar crontab de root
Ejecute el siguiente comando:
sudo crontab -e
Esto se abre root
crontab. sudo
no es necesario ejecutar su comando en este contexto, ya que se invocará como root
de todas formas.
Por lo tanto, simplemente agregaría lo siguiente al crontab de root.
@hourly rm somefile
Ahora, si tu absolutamente quiere no estar seguro y correr riesgos con su contraseña, lo siguiente ejecutará su comando desde su propio crontab e ingresará su contraseña automáticamente cuando se lo solicite sudo
.
De nuevo, esto no es recomendable.
En su propio crontab, escriba su comando así:
@hourly echo "password" | sudo -S rm somefile
La desventaja obvia aquí es que, en caso de que alguien acceda a su crontab, su contraseña será legible en texto plano.
No deberías hacer esto.
Si está colocando el script de uno de los directorios cron (/etc/cron.*
) entonces no necesita usar sudo ya que se está ejecutando como root.
Si está usando crontab, entonces querrá usar crontab de root. Esto lo ejecutará como root y tampoco necesitará sudo.
sudo crontab -e
Ejecute el siguiente comando en la terminal
sudo visudo
Se agregó la siguiente línea al final del archivo:
vidyadhar ALL= NOPASSWD: /bin/rm
En el ejemplo anterior, vidyadhar es el nombre de usuario y no le pedirá la contraseña si está ejecutando el comando rm a través de vidyadhar.