Kann ein Startagent als Benutzer mit Sudo-Berechtigungen ausgeführt werden?

564
Chris Vasselli

Ich habe eine ausführbare Datei, die jedes Mal ausgeführt werden muss, wenn sich ein Benutzer anmeldet. Sie muss im Kontext dieses Benutzers ausgeführt werden, jedoch mit Root-Berechtigungen, als hätte der Benutzer sie ausgeführt sudo.

Ich habe in der Dokumentation von Apple sowie auf der Website launchd.info nach einer Möglichkeit gesucht, konnte aber nichts finden.

Wenn ich einen Launch Agent (in ~/Library/LaunchAgentsoder /Library/LaunchAgents) oder einen Launch Daemon mit der UserNameEigenschaftssatz erstelle, wird er (wie gewünscht) als Benutzer ausgeführt. Ich kann jedoch keine Aktionen ausführen, für die erhöhte Berechtigungen erforderlich sind.

Wenn ich einen Launch Daemon (in /Library/LaunchDaemons) erstelle, wird er als root (mit den gewünschten Berechtigungen) ausgeführt, jedoch ohne Benutzerkontext. Wenn ich su <username> -c "<command>"oder sudo -u <username> <command>vom Launch Daemon aus verwende, kann ich als Benutzer einen Befehl ausführen, der jedoch ohne Sudo-Berechtigungen ausgeführt wird.

Gibt es eine Möglichkeit, einen Startagenten mit Sudo-Berechtigungen auszuführen?

2
ein paar vorschläge: dieser .plist-generator schlägt vor, dass Sie den Benutzernamen angeben können. Sie könnten es versuchenNutzername Wurzel`(Habe ich nicht) Alternativ können Sie innerhalb des Skripts als "root" ausgeführt werden, wie auf verschiedene Weise hier vorgeschlagen: https://askubuntu.com/questions/425754/how-do-i-run-sudo-command-inside-a-script anon01 vor 6 Jahren 0

0 Antworten auf die Frage