Ejecutar alias con sudo al inicio de sesión

1

Creé el siguiente alias y lo puse en mi ~/.zshrc :

alias kiosk-proxy="echo \"rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080\" | sudo pfctl -ef -"

Es básicamente una regla pf que redirige todo el tráfico entrante con el puerto de destino 80 a 127.0.0.1:8080 (pero lo que hace no es importante, solo es para darle un poco de contexto)

Actualmente, tengo que ejecutar esto manualmente en cada inicio de sesión, me gustaría automatizarlo.

Sería bastante simple si no necesitara sudo rights, solo pondría kiosk-proxy en mi ~ / .bash_profile, supongo.

Pero como necesita sudo, pedirá la contraseña y dudo que la solicite. Entonces ... ¿Cómo puedo ejecutar este alias con derechos de sudo sin pedir la contraseña? Además, debe saber que existe tal alias en ~/.zshrc , que puede que aún no se haya cargado. En el peor de los casos, puedo mover el alias a otro archivo.

    
pregunta Vadorequest 26.01.2017 - 11:11

1 respuesta

1

Habilitar pf (con la regla rdr) con un comando / alias o una función / script de shell en su perfil de bash / zsh como en su pregunta no es una práctica común ni una buena práctica. Aunque es posible:

Para deshabilitar una solicitud de contraseña, modifique el archivo sudoers:

Abra Terminal e ingrese sudo visudo para modificar el archivo / etc / sudoers .

Cambia la parte:

## User privilege specification
##
root ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

a

## User privilege specification
##
root ALL=(ALL) ALL
%admin  ALL=(ALL) ALL
your_username ALL=(ALL) NOPASSWD: /sbin/pfctl

y guarda el archivo.

Si no sabe vi : después de ingresar sudo visudo , debe cambiar al modo de inserción presionando i . Ingrese la línea adicional como se indica arriba. Para salir de modo de inserción , presione esc . Luego ingrese :w q y la tecla Enter para escribir el archivo modificado en el disco y salir de vi.

bash:

Ingresar kiosk-proxy no debería requerir una contraseña más. Luego, simplemente puede agregar kiosk-proxy como una línea separada en su perfil bash (después de la línea alias kiosk-proxy ... )

Después de salir de la shell, pf no se deshabilitará y la regla aprobada todavía se está redireccionando. Para deshabilitar pf y la regla rdr al salir del shell (bash), cree un archivo con touch ~/.bash_logout y el contenido sudo pfctl -d .

zsh:

Lo mismo funciona con ~ / .zprofile que contiene:

alias kiosk-proxy="echo \"rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080\" | sudo pfctl -ef -"

kiosk-proxy

y ~ / .zlogout que contienen

sudo pfctl -d

Una forma más recomendada de es simplemente agregar la regla rdr en pf.conf y habilitar pf mientras se inicia.

    
respondido por el klanomath 26.01.2017 - 21:27

Lea otras preguntas en las etiquetas