Prévenir networksetup de demander le mot de passe
J'ai une petite application que j'utilise pour modifier les serveurs proxy sur mon Mac. Il utilise le networksetup
commande pour définir les paramètres de proxy, et qui a bien fonctionné sur Lion. Sur la Montagne du Lion, bien que, il demande le mot de passe admin à chaque fois que je change les paramètres de proxy.
networksetup essaie de modifier le système de configuration du réseau. Tapez votre mot de passe pour permettre cela.
Est-il un moyen pour empêcher que cela se produise? Ou est-il une meilleure façon de modifier les paramètres de proxy dans le Cacao? Sur Lion le système se souvient quand j'ai mis le mot de passe, donc j'ai eu à authentifier uniquement après le redémarrage.
J'ai aussi remarqué que dans Chrome, le Proxy Switchy plugin souffre du même comportement. Il dit
scutil essaie de modifier le système de configuration du réseau. Tapez votre mot de passe pour permettre cela.
Vous devez vous connecter pour publier un commentaire.
Utiliser sudo pour accomplir cela en ajoutant un sans mot de passe de la règle de l'utilisateur que vous souhaitez être en mesure d'exécuter cette commande.
Exécuter visudo pour lancer un éditeur pour modifier le fichier /etc/sudoers
À la fin du fichier, ajoutez la ligne
Où $USERNAME est, mettre le véritable nom d'utilisateur que vous souhaitez fournir nopassword l'accès à la networksetup commande.
Tester que votre utilisateur en exécutant
qui se fera l'écho d'une version de message si c'est mis en place correctement, ou demander un mot de passe si vous avez fait une erreur.
C'est beaucoup plus sûr, car il limite qui peut exécuter la commande en tant que root à un utilisateur spécifique, la définition de la networksetup binaire lui-même suid root signifie toute personne qui s'enregistre sur le système pourrait modifier la configuration de votre réseau. OSX est un système multi-utilisateurs, et elle doit être traitée comme telle.
Si vous êtes vraiment paranoïaque, assurez-vous d'utiliser le chemin d'accès complet lors de l'appel de /usr/bin/sudo ainsi.
Vous pouvez définir des autorisations
suid
à/usr/sbin/networksetup
et puis networksetup sera exécuté avec les privilèges root, d'autorisation, de sorte que vous n'avez pas besoin de mot de passe d'entrée plus.Sur suid: http://www.linuxnix.com/2011/12/suid-set-suid-linuxunix.html
cp: /Library/Preferences/SystemConfiguration/preferences.plist.old: Permission denied
J'ai essayé de le comprendre ainsi. J'ai remarqué que la page de man mentionne ceci:
Pas tout à fait sûr comment l'utiliser, mais il semble possible...