web-dev-qa-db-ger.com

Verhindern, dass das Netzwerksetup nach dem Kennwort fragt

Ich habe eine kleine App, mit der ich Proxys auf meinem Mac ändern kann. Es verwendet den Befehl networksetup, um die Proxy-Einstellungen festzulegen, und das hat bei Lion gut funktioniert. Bei Mountain Lion wird jedoch jedes Mal, wenn ich die Proxy-Einstellungen ändere, das Admin-Passwort abgefragt. 

networksetup versucht, die Netzwerkkonfiguration des Systems zu ändern. Geben Sie Ihr Passwort ein, um dies zuzulassen.

Gibt es eine Möglichkeit, dies zu verhindern? Oder gibt es eine bessere Möglichkeit, die Proxy-Einstellungen in Cocoa zu ändern? Bei Lion erinnerte sich das System daran, wann ich das Passwort eingegeben hatte, sodass ich mich erst nach einem Neustart authentifizieren musste.

Ich habe auch bemerkt, dass das Proxy Switchy-Plugin in Chrome unter dem gleichen Verhalten leidet. Es sagt 

scutil versucht, die Netzwerkkonfiguration des Systems zu ändern. Geben Sie Ihr Passwort ein, um dies zuzulassen.

25
Lauri Koskela

Verwenden Sie Sudo, um dies zu erreichen, indem Sie eine passwortlose Regel für den Benutzer hinzufügen, der diesen Befehl ausführen soll.

  • Führen Sie visudo aus, um einen Editor zum Ändern der Datei/etc/sudoers zu starten

    visudo -f /etc/sudoers
    
  • Fügen Sie am Ende der Datei die Zeile hinzu

    $USERNAME ALL=(root) NOPASSWD: /usr/sbin/networksetup
    

Geben Sie an der Stelle von $ USERNAME den Benutzernamen ein, den Sie mit nopassword auf den Befehl networksetup zugreifen möchten.

  • Speicher die Datei
  • Testen Sie es als Benutzer, indem Sie ausführen

    /usr/bin/Sudo /usr/sbin/networksetup -version
    

in diesem Fall wird eine Versionsnachricht ausgegeben, wenn sie korrekt eingerichtet ist, oder bei einem Fehler die Aufforderung zur Eingabe eines Kennworts.

Dies ist eine viel sicherere Route, da dadurch eingeschränkt wird, wer den Befehl als root auf einen bestimmten Benutzer ausführen kann. Wenn Sie die Binäreinstellung für das Netzwerksetup selbst festlegen, bedeutet suid root, dass jeder, der sich beim System anmeldet, Ihre Netzwerkkonfiguration ändern kann. OSX ist ein Mehrbenutzer-Betriebssystem und sollte als solches behandelt werden.

Wenn Sie wirklich paranoid sind, stellen Sie sicher, dass Sie beim Aufruf von/usr/bin/Sudo den vollständigen Pfad verwenden.

13

Sie können die Berechtigung suid auf /usr/sbin/networksetup setzen. Anschließend wird das Netzwerksetup mit Root-Berechtigung ausgeführt, sodass Sie kein Kennwort mehr eingeben müssen.

Sudo chmod u+s /usr/sbin/networksetup

Über suid: http://www.linuxnix.com/2011/12/suid-set-suid-linuxunix.html

7
user805627

Ich habe auch versucht, das herauszufinden. Ich habe bemerkt, dass die Manpage dies erwähnt:

Jedes Flag, das ein Passwort akzeptiert, akzeptiert "-" anstelle des Passworts, um anzuzeigen, dass es das Passwort von stdin lesen soll.

Nicht ganz sicher, wie man es benutzt, aber es scheint möglich zu sein ...

0
user1630543