Ich muss ein Shell-Skript programmgesteuert in einem Terminalfenster öffnen und es mit Administratorrechten ausführen. Ich verwende osascript, da es eine praktische Eingabeaufforderung für ein Administrator-Login/Passwort anzeigt.
Ich benutze derzeit das:
osascript -e 'do shell script "open -a Terminal \"'"$appDir"'\"" with administrator privileges'
Das Problem ist, dass das neu geöffnete Skript selbst nach Eingabe der Anmeldeinformationen in der OS X-Eingabeaufforderung beim ersten sudo-Befehl nach einem Passwort fragt.
Wie übergebe ich die Administratoranmeldeinformationen an das geöffnete Skript?
Ich würde versuchen, ein einfaches Skript zu schreiben:
#!/bin/bash
sudo /usr/bin/id
Speichern Sie dies als something.command
, ändern Sie seine Berechtigungen in ausführbar mit chmod +x
und führen Sie es dann von AppleScript aus mit aus
osascript -e 'do shell script "open -a Terminal ./something.command"'
Stattdessen /usr/bin/id
können Sie jedes Skript aufrufen, das Sie dann mit Administratorrechten ausführen müssen.
BEARBEITEN:
Das wird funktionieren:
osascript -e 'do shell script "sudo /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal" with administrator privileges'
osascript -e 'do shell script "sudo /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal \"'"$appDir"'\"" with administrator privileges'
. Vom OS X-Dialogfeld angeforderte Administratorrechte wurden erfolgreich an das ausgeführte Skript übergeben.
kein Hang
DavidD