Ich habe den folgenden Alias erstellt und in meine eingefügt ~/.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 ist im Grunde eine pf-Regel, die den gesamten eingehenden Datenverkehr mit dem Zielport 80 auf 127.0.0.1:8080 umleitet (aber was es tut, ist nicht wichtig, es dient nur dazu, Ihnen etwas Kontext zu geben).
Derzeit muss ich dies bei jedem Sitzungsstart manuell ausführen, ich möchte es automatisieren.
Es wäre ziemlich einfach, wenn es keine sudo
Rechte bräuchte, ich würde einfach kiosk-proxy
mein ~/.bash_profile einfügen, denke ich.
Aber da es sudo braucht, wird es nach dem Passwort fragen und ich bezweifle, dass es dazu auffordern wird. Also ... Wie kann ich diesen Alias mit sudo-Rechten ausführen, ohne nach dem Passwort zu fragen? Außerdem muss es wissen, dass es einen solchen Alias in gibt ~/.zshrc
, der möglicherweise noch nicht geladen wurde. Im schlimmsten Fall kann ich den Alias in eine andere Datei verschieben.
Das Aktivieren von pf (mit der rdr-Regel) mit einem Befehl/Alias oder einem Shell-Skript/einer Shell-Skript/Funktion in Ihrem bash/zsh-Profil wie in Ihrer Frage ist weder üblich noch eine gute Praxis. Möglich ist aber:
Um eine Passwortabfrage zu deaktivieren, ändern Sie die sudoers-Datei:
Öffnen Sie Terminal und geben Sie ein sudo visudo
, um die Datei /etc/sudoers zu ändern .
Teil wechseln:
## User privilege specification
##
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
Zu
## User privilege specification
##
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
your_username ALL=(ALL) NOPASSWD: /sbin/pfctl
und speichern Sie die Datei.
Falls Sie vi nicht kennen : Nach der Eingabe sudo visudo
müssen Sie in den Einfügemodus wechseln , indem Sie drücken i. Geben Sie die zusätzliche Zeile wie oben angegeben ein. Um den Einfügemodus zu verlassen, drücken Sie esc. Geben Sie dann :wqund die EnterTaste ein, um die geänderte Datei auf die Festplatte zu schreiben, und beenden Sie vi.
bash:
Für die Eingabe kiosk-proxy
sollte kein Passwort mehr erforderlich sein. Sie können dann einfach kiosk-proxy
als separate Zeile in Ihrem bash_profile (nach der alias kiosk-proxy ...
Zeile) hinzufügen
Nach dem Verlassen der Shell wird pf nicht deaktiviert und die übergebene Regel leitet immer noch weiter! Um pf und die rdr-Regel beim Beenden der (Bash-)Shell zu deaktivieren, erstellen Sie eine Datei mit touch ~/.bash_logout
und dem Inhalt sudo pfctl -d
.
zsch:
Dasselbe funktioniert mit ~/.zprofile, das Folgendes enthält:
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
und ~/.zlogout enthalten
sudo pfctl -d
Ein empfehlenswerterer Weg ist, einfach die rdr-Regel in pf.conf hinzuzufügen und pf während des Bootens zu aktivieren.
Allan
Vadoranfrage
MrBungleBear
mmmmmm
Vadoranfrage