Réponses:
Je ne vais pas entrer dans combien c'est une mauvaise idée; Pour le dire simplement, si vous utilisez sudo
crontab, votre mot de passe doit être stocké quelque part en texte clair.
C'est une mauvaise idée.
Voici la méthode recommandée pour exécuter des tâches administratives via cron. Puisque vous n'avez pas vraiment besoin d'écrire sudo
dans la crontab, modifiez la crontab de root.
Exécutez la commande suivante:
sudo crontab -e
Cela ouvre root
la crontab. sudo
n’est pas nécessaire d’exécuter votre commande dans ce contexte, car elle sera invoquée de root
toute façon.
Par conséquent, vous ajouterez simplement ce qui suit au fichier crontab de root.
@hourly rm somefile
Maintenant, si vous voulez absolument être dangereux et prendre des risques avec votre mot de passe, ce qui suit va exécuter votre commande à partir de votre propre crontab, et entrez votre mot de passe automatiquement lorsque vous y êtes invité sudo
.
Encore une fois, ce n'est pas recommandé .
Dans votre propre crontab, écrivez votre commande comme suit:
@hourly echo "password" | sudo -S rm somefile
L'inconvénient évident est que, si jamais quelqu'un accédait à votre crontab, votre mot de passe serait lisible en texte brut.
Tu ne devrais pas faire ça.
root
la crontab utilisateur plutôt que la crontab globale /etc/crontab
?
sudoers
fichier, comme les groupes sudo sans mot de passe.
Si vous mettez le script à partir de l’un des répertoires cron ( /etc/cron.*
), vous n’avez pas besoin d’utiliser sudo car il s’exécute en tant que root.
Si vous utilisez crontab, vous voudrez utiliser crontab de root. Cela l'exécutera en tant que root et n'aura pas besoin de sudo.
sudo crontab -e
Exécuter la commande suivante dans le terminal
sudo visudo
Ajout de la ligne suivante à la fin du fichier:
vidyadhar ALL= NOPASSWD: /bin/rm
Dans l'exemple ci-dessus, vidyadhar est le nom d'utilisateur et il ne vous demandera pas de mot de passe si vous exécutez la commande rm via vidyadhar.
sudo rm -rf 'slash'
( ne pas exécuter cette commande ), exécutée à partir de cet utilisateur, ne nécessiterait aucun mot de passe .. Je ne sais pas, cela ne semble pas être sûr, non?
vidyadhar ALL= NOPASSWD: /bin/rm somefile
-être serait plus sécurisé.
<username> ALL=(ALL) NOPASSWD: /home/<username>/bin/<script>
, ce qui serait beaucoup plus sûr.