2011-09-01 17 views
7

Tại công ty của tôi, một số lệnh được phép chạy với sudo, chẳng hạn như tcpdump. Những người khác thì không.làm thế nào để chấm dứt một quá trình được chạy với sudo? Ctrl + C làm điều đó, nhưng không giết

Tôi mong đợi chạy tcpdump một lúc, rồi dừng lại. Khi tôi chạy tcpdump, và tôi có thể hủy bỏ điều đó với Ctrl + C

tôi đã viết một kịch bản shell như thế này -

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

nó không thực sự làm việc. Quá trình tcpdump được chạy dưới dạng root và người dùng hiện tại là một tài khoản bình thường.

Câu hỏi của tôi là: có cách nào để thực hiện tương đương với ctrl c trong tập lệnh bash không ?.

CHỈNH SỬA:

ps: Vì chính sách bảo mật của công ty tôi, tôi không thể chạy tiêu diệt root.

Trả lời

5

Hãy thử tùy chọn -Z để tcpdump. Nó hướng dẫn tcpdump để thả đặc quyền root và chạy như người dùng được chỉ định trong đối số.

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

Bây giờ hãy thử giết quá trình đó.

+0

'-Z' lấy một đối số ... –

+0

tuyệt vời! Nó hoạt động. Cảm ơn nhiều. – blaketang

5

Đơn giản chỉ cần chạy kill qua sudo cũng như:

sudo kill -2 $! 

Bằng cách này, quá trình kill sẽ có đặc quyền để gửi tín hiệu tới một quá trình mà chạy như root.

+2

Cảm ơn Blagovest , Tôi xin lỗi vì câu hỏi của tôi không rõ ràng! Đối với các chính sách bảo mật tại công ty của tôi, tôi không thể chạy giết như root, và không thể thêm bất kỳ lệnh vào tập tin cấu hình sudo. – blaketang

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

sẽ chặn kịch bản của bạn, bạn cần phải đặt nó vào nền:

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

.

Điều này và answer from Blagovest nên làm điều đó.

+0

bạn nói đúng, và nên được nối thêm. – blaketang

1

Lệnh timeout cũng chấm dứt một chương trình sau quá lâu. sudo timeout 5 tcpdump -ieth1 -w ~/dump.bin sẽ thực hiện tương tự như tập lệnh.

+1

lệnh hết thời gian chờ sẽ được thêm vào tệp cấu hình sudo first.I không thể thực hiện điều đó, do chính sách bảo mật của công ty. – blaketang

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

G - Giây Timeout (Sau khoảng thời gian timeout các comman bị giết tự động) Z - thả rễ và chạy như người sử dụng đặc quyền W - file Số được lưu (như là một tập tin tách)

Các vấn đề liên quan