Esegui alias con sudo all'avvio della sessione

1

Ho creato il seguente alias e lo metto nel mio ~/.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 -"

In pratica è una regola pf che reindirizza tutto il traffico in entrata con la porta di destinazione da 80 a 127.0.0.1:8080 (ma ciò che fa non è importante, è solo per darti un contesto)

Attualmente, devo eseguire manualmente questo all'avvio di ogni sessione, mi piacerebbe automatizzarlo.

Sarebbe piuttosto semplice se non avesse bisogno dei diritti di sudo , metterei semplicemente kiosk-proxy nel mio ~ / .bash_profile, immagino.

Ma dal momento che ha bisogno di sudo, chiederà la password e dubito che lo chiederà. Quindi ... Come posso eseguire questo alias con diritti sudo senza chiedere la password? Inoltre, è necessario sapere che esiste un alias di questo tipo in ~/.zshrc , che potrebbe non essere stato ancora caricato. Caso peggiore, posso spostare l'alias in un altro file.

    
posta Vadorequest 26.01.2017 - 11:11
fonte

1 risposta

1

Abilitare pf (con la regola rdr) con un comando / alias o uno script / funzione shell nel tuo profilo bash / zsh come nella tua domanda non è né comune né buona pratica. È possibile però:

Per disabilitare una richiesta di password, modifica il file sudoers:

Apri Terminale e inserisci sudo visudo per modificare il file / 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

e salva il file.

Se non conosci vi : dopo aver inserito sudo visudo devi passare a inserire modalità premendo i . Immettere la riga aggiuntiva come indicato sopra. Per lasciare inserisci modalità premi esc . Quindi inserisci : w q e la chiave Invio per scrivere il file modificato su disco e uscire da vi.

bash:

L'immissione di kiosk-proxy non dovrebbe richiedere più una password. Puoi quindi semplicemente aggiungere kiosk-proxy come una riga separata in bash_profile (dopo la riga alias kiosk-proxy ... )

Dopo aver chiuso la shell, pf non sarà disabilitato e la regola passata sta ancora reindirizzando! Per disabilitare pf e la regola rdr mentre si esce dalla shell (bash), creare un file con touch ~/.bash_logout e il contenuto sudo pfctl -d .

zsh:

Lo stesso funziona con ~ / .zprofile contenente:

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

e ~ / .zlogout contenenti

sudo pfctl -d

Un altro modo consigliato è semplicemente aggiungere la regola rdr in pf.conf e abilitare pf durante l'avvio.

    
risposta data 26.01.2017 - 21:27
fonte

Leggi altre domande sui tag