Преобразование файлов .pcap в .txt с использованием tshark

Я пытаюсь преобразовать мои файлы захвата пакета .pcap, сгенерированные tcpdump, в текстовый формат. Я получаю ошибку разрешения всякий раз, когда пытаюсь преобразовать файл .pcap или даже просто перенести «>» стандартный вывод tcpdump в текстовый файл.

Метод 1:

генерировать файлы захвата пакетов, используя

sudo tcpdump -i wlan0 -w /var/log/tcpdump/tcpdump-log-06-03-2015.pcap

, пытаясь преобразовать файл .pcap, используя

sudo tshark -V -r tcpdump-log-06-03-2015.pcap > tcpdump-log-06-03-2015.txt

, но я получаю ошибку, запрещающую разрешение например:

bash: tcpdump-log-06-03-2015.txt: Permission denied

Метод 2:

генерировать файлы захвата пакетов, используя

sudo tcpdump -i wlan0 > /var/log/tcpdump/tcpdump-log-06-03-2015.txt

Я получаю похожую ошибку «Отказано в доступе»:

bash: /var/log/tcpdump/tcpdump-log-06-03-2015.txt: Permission denied

Поскольку я запускаю обе команды как sudo, я решил, что разрешения не будут проблемой.

Я отключил apparmor для tcpdump, выполнив следующую команду:

sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.tcpdump

Может кто-нибудь пролить свет на то, почему это происходит? Или предложить лучший способ генерировать читаемый текстовый вывод для tcpdump?

0
задан 3 June 2015 в 01:42

1 ответ

Проблема - то, что часть перенаправления Ваших команд выполняется как Вы и не корень.
Так, если Вы хотите сохранить свой целевой каталог, как это, тогда необходимо заставить ту часть работать как корень также. С другой стороны, Вы могли сделать свой целевой тот каталога, для которого у Вас есть доступ для записи.

Пример, показывающий, почему это не работает (замечают полномочия на получающемся файле):

$ sudo tcpdump -n -tttt -r eth1-2015-04-16-17-01-35.bin > vvvbbb.txt
reading from file eth1-2015-04-16-17-01-35.bin, link-type EN10MB (Ethernet)
$ ls -l vvvbbb.txt
-rw-rw-r-- 1 doug doug 5418673 Jun  2 16:53 vvvbbb.txt

Пример метода, который будет работать (Снова, заметьте полномочия на получающемся файле):

$ sudo su
# tcpdump -n -tttt -r eth1-2015-04-16-17-01-35.bin >vvvbbb.txt
reading from file eth1-2015-04-16-17-01-35.bin, link-type EN10MB (Ethernet)
# ls -l vvvbbb.txt
-rw-r--r-- 1 root root 5418673 Jun  2 16:57 vvvbbb.txt
# exit
exit
$

Пример другого метода, который будет работать, но извергает также к терминалу, который может быть нежелательным:

$ sudo tcpdump -n -tttt -r eth1-2015-04-16-17-01-35.bin | sudo tee vvvbbb.txt
... delete tons of spew to terminal ...
$ ls -l vvv*.txt
-rw-r--r-- 1 root root 5418673 Jun  2 17:01 vvvbbb.txt

Примечание: Я использовал tcpdump здесь вместо tshark, но только потому, что у меня нет tshark установленным.

0
ответ дан 3 June 2015 в 01:42

Другие вопросы по тегам:

Похожие вопросы: