2011-09-01 10 views
7

Nella mia azienda, alcuni comandi possono essere eseguiti con sudo, come tcpdump. Altri nocome terminare un processo che viene eseguito con sudo? Ctrl + C lo fa, ma non uccide

Mi aspetto di eseguire tcpdump per un po ', quindi di interromperlo. Quando eseguo tcpdump, e ho potuto abortire che con Ctrl + C

ho scritto uno script di shell come questo -

#!/bin/sh 
sudo tcpdump -ieth1 -w ~/dump.bin 
sleep 5 
kill -2 $! 

in realtà non funziona. Il processo di tcpdump viene eseguito come root e l'utente corrente è un account normale.

La mia domanda è: c'è un modo per fare l'equivalente di ctrl c nello script di bash ?.

EDIT:

ps: come la politica di sicurezza della mia azienda, non posso correre uccidere come root.

risposta

5

Provare l'opzione -Z su tcpdump. Indica a tcpdump di eliminare i privilegi di root ed eseguire come specificato nell'argomento.

sudo tcpdump -Z $USER -ieth1 -w ~/dump.bin 

Ora prova a uccidere quel processo.

+0

'-Z' prende un argomento ... –

+0

fantastico! Funziona. Grazie mille. – blaketang

5

semplicemente eseguire kill attraverso sudo così:

sudo kill -2 $! 

In questo modo il processo di kill avrà il privilegio di inviare segnali ad un processo che viene eseguito come root.

+2

Grazie Blagovest , Mi dispiace che la mia domanda non sia stata chiara! Per la politica di sicurezza della mia azienda, non posso eseguire kill come root, e non posso aggiungere alcun comando nel file sudo di configurazione. – blaketang

0
sudo tcpdump -ieth1 -w ~/dump.bin 

sarà bloccare lo script, è necessario mettere in secondo piano:

sudo tcpdump -ieth1 -w ~/dump.bin & 

.

Questo e lo answer from Blagovest dovrebbero farlo.

+0

hai ragione, e dovrebbe essere aggiunto. Il comando di timeout – blaketang

1

Il comando timeout termina anche un programma dopo tanto tempo. sudo timeout 5 tcpdump -ieth1 -w ~/dump.bin dovrebbe avere lo stesso effetto dello script.

+1

deve essere aggiunto prima nel file di configurazione di sudo. Non posso farlo, a causa della politica di sicurezza dell'azienda. – blaketang

0
sudo tcpdump -Z root -w ~/dump.bin -n -i eth0 -G 300 -W 1 

G - timeout secondi (dopo il periodo di timeout comman viene ucciso automaticamente) Z - radice drop e corre come privilegi utente W - file numerici per essere salvati (come un file a spacco)

Problemi correlati