Come posso eseguire i comandi sudo come un cron job?

3

Sto provando a eseguire uno script di shell come un cron job. Il problema è che il mio script deve essere eseguito come superutente. L'ho provato scrivendo sudo infront del comando nel mio file crontab , ma non ha funzionato.

    
posta Lenar Hoyt 10.10.2011 - 19:12
fonte

3 risposte

5

Cron non è in alcun modo deprecato, ma LaunchD ha una maggiore versatilità e viene utilizzato e mantenuto / supportato attivamente da Apple. La loro guida alle migliori pratiche è qui

I lavori LaunchDaemon (rispetto a LaunchAgents, che accettano un id utente) vengono eseguiti nel contesto di root senza la necessità di abilitare l'utente root. Tutto ciò che serve è un file XML correttamente formato (puoi semplicemente copiare e incollare quelli preesistenti in / Library / LaunchDaemon, sostituendo lo script per ProgramArguments con le chiavi di programma applicabili) con le proprietà / autorizzazioni appropriate. Una vecchia versione può essere trovata qui: l'articolo approfondito di afp548

    
risposta data 10.10.2011 - 20:48
fonte
2

È un rischio per la sicurezza, ma puoi abilitare l'utente root ed eseguire il comando nel cron di root. In alternativa, hai provato a usare sudo -s per ottenere una "shell di root" e facendo in questo modo il cron di root. A seconda del tuo livello operativo, potresti non aver bisogno di avere root abilitato come utente per il suo cron.

Se vuoi farlo senza abilitare l'utente root (che in questo caso non è realmente necessario), puoi (come qualsiasi utente amministrativo) inserire sudo crontab -u root -e per modificare direttamente crontab di root.

    
risposta data 10.10.2011 - 19:30
fonte
-1

Commenta "Defaults requiretty" da / etc / sudoers usando visudo.

    
risposta data 27.10.2012 - 03:05
fonte

Leggi altre domande sui tag