in der Hoffnung, dass jemand dabei helfen kann. Ich versuche, ein Automator-Terminalskript in Mac OS Catalina zu schreiben, das WLAN ausschaltet, automatische Datums- und Uhrzeiteinstellungen deaktiviert und meinen Mac auf ein bestimmtes Systemdatum und eine bestimmte Uhrzeit einstellt. Ich habe wirklich keine Programmiererfahrung, aber was ich bisher habe, funktioniert, um WLAN auszuschalten und das Datum und die Uhrzeit des Systems zu ändern ... aber das Skript wird im Automator nicht beendet ... es dreht sich einfach weiter. Sie sind sich nicht sicher, wie Sie den Befehl Sudo -S beenden können, sobald er das Systemdatum und die Systemzeit eingestellt hat. Hier ist, was ich bisher habe:
networksetup -setairportpower en0 off
echo "password" | sudo -S date 0101000120
Das schaltet also das WLAN aus und gibt mein Passwort weiter (kann auch über einen Dialog erfolgen, aber das ist nicht mein Problem) und stellt das Systemdatum ein ... dann dreht sich das Automator-Rad einfach ....
Vielen Dank fürs Lesen und jede Hilfe sehr zu schätzen.
BEARBEITEN: Derzeit die Automator-Aufgabe neu geschrieben, um den Terminalbefehl auszuführen, nach einem Passwort fragen und das dann weitergeben:
networksetup -setairportpower en0 off
pw="$(osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null)" && / echo "$pw" | sudo -S date 0101000120
Das Rad dreht sich am Ende immer noch in einer Endlosschleife, aber ich kann darauf klicken und einen Stopp erzwingen. Jeder kennt einen Weg, um es einfach zu stoppen, es zu schätzen!
Ich könnte dies zum Laufen bringen, indem ich das Passwort aus einer Datei an sudo weiterleite, anstatt echo zu verwenden:
sudo -S date 0101000120 < ~/passwd.txt
Ich bin mir nicht sicher, welche Auswirkungen dies auf die Sicherheit hat, aber es fühlt sich falsch an ...
Wenn Sie nach einer schnellen und schmutzigen Lösung suchen, ist dies der Fall. Gemäß dem Kommentar von nohillside finden Sie hier einige Anweisungen zum Ausführen von sudo-Befehlen, ohne dass ein Kennwort erforderlich ist . Diese Vorschläge funktionieren für mich auf Mojave in iTerm2 und Terminal.
passwd.txt
(oder auf die Automator-Datei für den in der Frage verwendeten Ansatz) hat, kann sich anschließend als Administrator anmelden. Könnte besser verwendet werden visudo
, um die sudoers-Datei zu bearbeiten und passwortlosen sudo-Zugriff auf den date
Befehl für den bestimmten Benutzer zu ermöglichen.networksetup -setairportpower en0 off
pw="$(osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "password" with hidden answer' -e 'text returned of result' 2>/dev/null)" && / echo "$pw" | sudo -S date 0101000120
Allan
echo
sendet die Ausgabe an die Konsole. Eine Passwortabfrage erwartet eine Eingabe . Der gesuchte Befehl istexpect
. Das Ausschalten von WLAN und das Ändern der Systemzeit ist jedoch ein ziemlich seltsamer Arbeitsablauf. Was versuchst du zu erreichen?rhk118
rhk118
Allan
rhk118
Mockmann