Muszę programowo otworzyć skrypt powłoki w oknie terminala i uruchomić go z uprawnieniami administratora. Używam os Javascript, ponieważ wyświetla wygodny monit o login / hasło administratora.
Obecnie używam tego:
osascript -e 'do shell script "open -a Terminal \"'"$appDir"'\"" with administrator privileges'
Problem polega na tym, że nawet po wprowadzeniu poświadczeń w wierszu poleceń OS X nowo otwarty skrypt będzie błagał o hasło przy pierwszym poleceniu sudo.
Jak przekazać dane logowania administratora do otwartego skryptu?
Odpowiedzi:
Próbowałbym napisać prosty skrypt:
zapisz to jako
something.command
, zmień jego uprawnienia na wykonywalne za pomocąchmod +x
, a następnie uruchom to z AppleScript za pomocąZamiast
/usr/bin/id
możesz wywołać dowolny skrypt, który musisz uruchomić z uprawnieniami administratora.EDYTOWAĆ:
To zadziała:
źródło
osascript -e 'do shell script "sudo /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal \"'"$appDir"'\"" with administrator privileges'
. Uprawnienia administratora zadane przez okno dialogowe OS X zostały pomyślnie przekazane do wykonanego skryptu.