Hogyan kell futtatni egy cron feladatot a sudo paranccsal

98

Lehetőség van olyan cron munkára, amelynek szüksége van a sudo parancsot?

Like:

 sudo rm somefile
    
készlet sayem siam 09.08.2012 19:51
forrás

3 válasz

195

Nem fogok belemenni, hogy ez mennyire rossz ötlet; egyszerűen a "crontab"sudo futása megkívánja, hogy a jelszavát valahol egyszerű szöveggel tárolja.

Ez egy rossz ötlet.

A következő az adminisztratív feladatoknak a cron segítségével történő futtatásának előnyös módja. Mivel a crontab-ban nem kell írni asudo -ot, ha módosítod a root crontab fájljait.

Használja a root crontab-ját

Futtassa a következő parancsot:

sudo crontab -e

Ez megnyitja aroot crontab fájlját. Asudo nem szükséges a parancs futtatásához ebben a kontextusban, mivel ezt egyébkéntroot -ként fogják használni.

Ezért egyszerűen csak csatolja a következőket a root crontabjához.

@hourly rm somefile

Most, ha teljesen szeretné, hogy nem biztonságos és kockázatot vállaljon a jelszavával, a következő parancsot a saját crontabjáról futtathatja, és asudo parancs kérésével automatikusan beírhatja a jelszavát. / p>

Ismét ez nem ajánlott .

A saját crontabjába írd a parancsodat így:

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

A nyilvánvaló hátrány az, hogy ha valaki hozzáférne a crontab-hoz, jelszavát olvashatóan olvashatja.

Ezt nem szabad megtenni.

    
válasz adott SirCharlo 09.08.2012 20:03
forrás
26

Ha a parancsfájlt az egyik cron könyvtárból (/etc/cron.*) állítja be, akkor nem kell a sudo-t használni, mivel rootként fut.

Ha crontabot használsz, akkor használni fogod a root crontab-ját. Ez gyökérként fog működni, és nem is kell sudo.

sudo crontab -e
    
válasz adott tgm4883 09.08.2012 20:02
forrás
0

A következő parancs futtatása a terminálon

sudo visudo

Hozzáadta a következő sort a fájl végéhez:

vidyadhar  ALL= NOPASSWD: /bin/rm

A fenti példában a vidyadhar a felhasználónév, és nem fogja kérni a jelszót, ha az rm parancsot vidyadharon futtatja.

    
válasz adott Vidyadhar 09.08.2012 20:07
forrás