Terminal - Kein Passwort erforderlich, damit das Shell-Skript ausgeführt werden kann

Ich verwende Yosemite 10.10.5 und habe ein Shell-Skript, mit dem ich umschalten möchte, ob meine WLAN-Verbindungen über Tor laufen oder nicht. Dies verwendet das networksetupein paar Mal und fragt daher jedes Mal nach meinem Passwort, wenn ich es ausführe oder abbreche.

Gibt es eine Möglichkeit, ein Shell-Skript auszuführen, ohne jedes Mal mein Passwort abzufragen?

Danke!

Sie können die sudoersDatei bearbeiten, um Ihrem Benutzer Zugriff zu gewähren, networksetupohne dass ein Kennwort erforderlich ist. Ist networksetupder einzige Befehl, der erfordert sudo?
ja. Würden Sie etwas ausarbeiten, was und wie zu bearbeiten ist?
Ich muss mich zuerst an einen Mac setzen, um sicherzustellen, dass ich es richtig mache, bleib dran :-)

Antworten (1)

Sie können der /etc/sudoersDatei eine Regel hinzufügen, um Ihren Benutzern Zugriffsrechte networksetupohne Kennwort zu erteilen.

  1. Notieren Sie sich den Benutzernamen des Benutzerkontos, das den Befehl ausführen dürfen soll (Sie können den Benutzernamen abrufen, indem Sie ihn whoamiim Terminal ausführen).
  2. Melden Sie sich als Admin-Benutzer an
  3. Terminal öffnen
  4. VISUAL=nano sudo visudo- öffnet die sudoers-Datei in einer Art freundlichem Editor
  5. Nach unten springen
  6. Hinzufügen

    USERID-FROM-STEP1 ALL = NOPASSWD: /usr/sbin/networksetup
    

    gefolgt von einer Leerzeile (!)

  7. Speichern und Beenden

networksetupSie sollten nun als Benutzer aus Schritt 1 ohne Passwortabfrage ausführen können, indem Sie einfach eingeben sudo networksetup.

Was ist, wenn der Benutzer nur ich bin? wäre es dann der Name meines Home-Verzeichnisses?
@river_jones Um Ihre richtige Benutzer-ID zu erhalten, geben Sie einfach whoamiim Terminal ein. Normalerweise (aber nicht unbedingt, da Sie Ihren Benutzerordner oder Ihren Benutzer zuvor möglicherweise umbenannt haben) ist dies derselbe Name wie Ihr Home-Ordner in /Benutzer.
Unabhängig davon war ich nur neugierig und wurde nanodurch ersetzt subl(ich verwende sublime für die Entwicklung) und dies öffnete gerade eine neue leere Datei (wie touch). Warum nanoöffnet es die "richtige" /etc/subdoers.tmp`, subltut es aber nicht?
Übrigens war mir nicht klar, dass ich als Admin einfach sudozu meinen networksetupAnrufen hinzufügen kann und es ausreicht, die Passwortbestätigung zu unterdrücken. Dies ist jedoch nützlich, um dasselbe für Nicht-Administratoren zuzulassen. Danke für deine Zeit und Hilfe!