¿Puedo ejecutar el comando sudo ipconfig set en0 DHCP
como usuario estándar que no debería ¿Pedir nombre de usuario y contraseña administrativos?
Respuestas
¿Demasiados anuncios?sudo ipconfig set $if DHCP && echo OK
Dónde $if
es su interfaz de red. Por ejemplo en0
.
Para saber qué interfaz desea restablecer, puede ver la salida de ifconfig
.
O si eres perezoso, puedes simplemente copiar/pegar esta línea, que establecerá $if
a la interfaz que se utiliza para acceder a Internet:
if=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}') && echo $if
Así que en el orden correcto:
if=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}') && echo $if
sudo ipconfig set $if DHCP && echo OK
(Acabo de darme cuenta, años después, de que mi "respuesta" anterior en realidad no era una respuesta a la pregunta real en absoluto).
La verdadera pregunta parece ser "¿Cómo ejecutar un comando que requiere sudo
sin necesidad de introducir una contraseña?".
La solución es utilizar el NOPASSWD:
en el archivo sudoers, seguido del comando para el que desea suprimir la solicitud de contraseña.
NO utilizar NOPASSWD: ALL
como se sugiere en muchos ejemplos, pero especifique los comandos que no requerirán contraseña.
Además, el /private/etc/sudoers
en MacOS parece sobrescribirse con las actualizaciones. En su lugar, cree un archivo en /private/etc/sudoers.d/
.
Así que en su caso, para el ipconfig
utilizando visudo
para crear un archivo:
# Make visudo use nano rather than vi
export VISUAL=nano
sudo visudo -f /private/etc/sudoers.d/nopasswd
En el archivo, utilice esta línea:
%admin ALL=(ALL) NOPASSWD: ipconfig
La hoja de trucos del mando de red en Krypted.com tiene este ejemplo:
Configura la interfaz llamada Wi-Fi para obtenerla si no lo está ya
networksetup -setdhcp Wi-Fi
Debe sustituir Wi-Fi por el nombre de la interfaz vinculada a en0.