2012-08-05 13 views
25

Tengo una pequeña aplicación que utilizo para cambiar los proxies en mi Mac. Utiliza el comando networksetup para establecer la configuración del proxy, y eso funcionó bien en Lion. Sin embargo, en Mountain Lion pregunta la contraseña de administrador cada vez que cambio la configuración del proxy.Impedir que networksetup solicite la contraseña

networksetup está intentando modificar la configuración de la red del sistema. Escriba su contraseña para permitir esto.

¿Hay alguna manera de evitar que esto suceda? ¿O hay una mejor manera de cambiar la configuración del proxy en Cocoa? En Lion, el sistema recordaba cuando ingresé la contraseña, así que tuve que autenticar solo después de reiniciar.

También noté que en Chrome, el complemento Proxy Switchy sufre del mismo comportamiento. Dice

scutil está tratando de modificar la configuración de la red del sistema. Escriba su contraseña para permitir esto.

Respuesta

0

He estado tratando de resolver esto también. Me di cuenta de la página de manual menciona esto:

cualquier bandera que lleva una contraseña aceptará "-" en lugar de la contraseña para indicar que se debe leer la contraseña de la entrada estándar.

No muy seguro de cómo usarlo, pero parece posible ...

+1

Ha entendido mal la pregunta, de lo que está hablando es de dar una contraseña a networksetup para los comandos que esperan uno. El problema del OP es que networksetup debe ser ejecutado por el usuario con privilegios de administrador. Ni siquiera es el conjunto de red el que solicita una contraseña aquí, sino el administrador de autenticación. – SirDarius

7

Puede ajustar el permiso suid a /usr/sbin/networksetup y luego networksetup se ejecutará con permisos de root, por lo que no es necesario introducir la contraseña más .

sudo chmod u+s /usr/sbin/networksetup 

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

+1

Esto parece funcionar en OS X 10.8 pero me temo que si repare los permisos usando Disk Util, esta revisión desaparecerá. – sorin

+0

Esto me da el error '' cp: /Library/Preferences/SystemConfiguration/preferences.plist.old: Permiso denegado'' – Sean

+1

No establezca binarios suid - es una mala práctica y es por qué sudo existe en primer lugar. Agregué una respuesta basada en sudo para esta pregunta para mostrar la solución de mayor seguridad para este problema. – synthesizerpatel

12

usar sudo para lograr esto mediante la adición de una regla sin contraseña para el usuario que desea ser capaz de ejecutar este comando.

  • Run visudo para lanzar un editor para modificar el archivo/etc/sudoers

    visudo -f /etc/sudoers 
    
  • Al final del archivo, agregue la línea

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

Dónde $ USERNAME es, ingrese el nombre de usuario actual que desea proporcionar acceso sin contraseña al comando networksetup.

  • Guarde el archivo
  • prueba como su usuario ejecutando

    /usr/bin/sudo /usr/sbin/networksetup -version 
    

que echo un mensaje versión si se ha configurado correctamente, o solicite una contraseña si' he cometido un error.

Esta es una ruta mucho más segura porque limita quién puede ejecutar el comando como root para un usuario específico, configurando el binario networksetup en sí mismo suid root significa que cualquiera que inicie sesión en el sistema podría modificar su configuración de red. OSX es un sistema operativo multiusuario, y debe tratarse como tal.

Si realmente está paranoico, asegúrese de utilizar la ruta completa cuando llame a/usr/bin/sudo también.

+0

Más información, por favor. Intenté lo anterior (supongamos que mi nombre de usuario administrador es 'fred') agregando {fred ALL = (root) NOPASSWD:/usr/sbin/networksetup} y obtuve una larga serie de errores con la prueba (NB sbin no compartimiento). ¿Cómo debo formatear el comando? – dcnicholls

+0

He editado la respuesta para corregir la ruta y hacer la prueba más clara. Si llama a networksetup sin ningún parámetro, obtendrá una larga página de sugerencias de uso. Pero eso prueba que funciona sin una contraseña. – nanoamp

+0

Estas instrucciones producen ESTE error ahora "sudo: error de análisis en/etc/sudoers cerca de la línea 48 sudo: no se encontraron fuentes de sudoers válidas, salir" ¿Cómo editamos el archivo ahora? – thefonso

Cuestiones relacionadas