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, es solo para darle algo 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
derechos, simplemente pondría kiosk-proxy
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 sudo sin pedir la contraseña? Además, necesita saber que existe tal alias en ~/.zshrc
, que es posible que aún no se haya cargado. En el peor de los casos, puedo mover el alias a otro archivo.
Habilitar pf (con la regla rdr) con un comando/alias o un script/función de shell en su perfil bash/zsh como en su pregunta no es una práctica común ni buena. Aunque es posible:
Para deshabilitar una solicitud de contraseña, modifique el archivo sudoers:
Abra Terminal y entre sudo visudo
para modificar el archivo /etc/sudoers .
Cambia la pieza:
## 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 guarde 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 del modo de inserción pulsa esc. Luego ingrese :wqy la Entertecla para escribir el archivo modificado en el disco y salga vi.
intento:
Entrar kiosk-proxy
ya no debería requerir una contraseña. Luego, simplemente puede agregar kiosk-proxy
como una línea separada en su bash_profile (después de la alias kiosk-proxy ...
línea)
¡Después de salir del shell, pf no se deshabilitará y la regla aprobada todavía se está redirigiendo! 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 contiene
sudo pfctl -d
Una forma más recomendada es simplemente agregar la regla rdr en pf.conf y habilitar pf durante el arranque.
Alano
Solicitud de vado
mrbunglebear
mmmmmm
Solicitud de vado