Launchd - Esegui come se tu fossi loggato come utente usando sudo

6

C'è un modo per farlo?

Fondamentalmente sto provando a eseguire uno script che deve avviare un programma.

Mettere lo script in /Library/LaunchDaemons funziona bene, ma tutto viene eseguito come se fosse l'utente root. Questo non funziona perché deve essere eseguito come se fosse un utente reale, ma utilizzando il comando sudo .

Quindi ho spostato lo script su ~/Library/LaunchDaemons ma ora non avvierà il programma, presumibilmente perché viene eseguito come utente e non con le autorizzazioni di sudo .

Quindi sono bloccato. Accesso come utente e accesso a un terminale in esecuzione:

sudo my_command_which_launches_a_program

Funziona perfettamente, e esattamente come voleva funzionare. Quindi voglio emularlo sostanzialmente, ma in uno script Launchd, se possibile.

Grazie

    
posta Thomas Clayson 05.06.2013 - 11:43
fonte

2 risposte

4

Metti il plist in / Library / LaunchDaemons ma modificalo per dire quale utente verrà eseguito dallo script come

La chiave che devi aggiungere è UserName. Ad esempio, eseguo un newserver come utente _news

<key>UserName</key>
<string>_news</string>

Documentato in pagina man di launchd di Apple

    
risposta data 05.06.2013 - 13:05
fonte
-2

it needs to run as if its a real user, but using the sudo command

Penso che questo smentisca un falso presupposto che stai facendo. Quando un utente esegue sudo foobar , il comando foobar viene eseguito dall'utente root .

Le uniche cose che possono essere diverse quando si esegue foobar come root (anziché l'utente che esegue sudo foobar ) sono le variabili di shell e di ambiente disponibili come $HOME o $PATH .

Se la tua applicazione richiede una shell specifica o una variabile di ambiente, assicurati che quella shell o la variabile di ambiente sia impostata da LaunchDaemon che stai creando . Ciò ti farà risparmiare parecchio tempo nel tentativo di ottenere launchd per replicare l'esperienza esatta di un utente specifico che esegue sudo foobar .

A quelle downvoting , queste informazioni vengono sottoposte a backup più volte su StackExchange qui , < a href="https://askubuntu.com/a/592838/19047"> qui e qui per i principianti.

    
risposta data 29.06.2017 - 17:39
fonte

Leggi altre domande sui tag