Jak spustit úlohu cron pomocí příkazu sudo

98

Je možné spustit práci cron , která vyžaduje příkaz sudo ?

Líbí se:

 sudo rm somefile
    
dané sayem siam 09.08.2012 19:51

3 odpovědi

195

Nebudu se dostat do toho, kolik to je špatný nápad; jednoduše řečeno, běhsudo v crontabu vyžaduje, aby bylo vaše heslo uloženo někde v otevřeném textu.

Je to špatný nápad.

Následuje preferovaný způsob spouštění administrativních úloh prostřednictvím cronu. Protože ve crontabu skutečně nemusíte psátsudo, pokud upravujete crontab root.

Použijte root crontab

Spusťte následující příkaz:

sudo crontab -e

Tím se otevře crontabroot. sudo není pro spuštění příkazu v tomto kontextu, jelikož bude stejně jakoroot vyvolán.

Proto byste jednoduše připojili k crontabu uživatele root

@hourly rm somefile

Nyní, pokud chcete absolutně být nebezpečné a riskovat s vaším heslem, bude váš příkaz spouštět z vašeho vlastního crontabu a automaticky zadáte své heslo, když budete vyzvánisudo.

Opět se nedoporučuje .

Ve vlastním crontabu napište svůj příkaz takto:

@hourly echo "password" | sudo -S rm somefile

Zjevná nevýhoda je, že pokud by někdo někdy přistupoval k vašemu crontabu, vaše heslo bude čitelné v otevřeném textu.

Neměli byste to dělat.

    
odpověděl SirCharlo 09.08.2012 20:03
26

Pokud vkládáte skript z jednoho z adresářů cron (/etc/cron.*), nemusíte používat sudo jako spuštěný jako root.

Pokud používáte crontab, budete chtít použít crontab root. Bude to spouštět jako root a také nebudete potřebovat sudo.

sudo crontab -e
    
odpověděl tgm4883 09.08.2012 20:02
0

Spusťte následující příkaz v terminálu

sudo visudo

Do konce souboru byl přidán následující řádek:

vidyadhar  ALL= NOPASSWD: /bin/rm

Ve výše uvedeném příkladu vidyadhar je uživatelské jméno a nepotřebuje heslo, pokud používáte příkaz rm prostřednictvím vidyadhar.

    
odpověděl Vidyadhar 09.08.2012 20:07