Я столкнулся с очень странной ошибкой, я запускаю tcpdump от root и хочу регистрировать вывод, когда я делаю
tcpdump -i eth0 -w logs/local.dump
он работает нормально, но когда я устанавливаю путь вывода, как показано ниже, я получаю ошибку разрешения:
tcpdump -i eth0 -w /mnt/local.dump
Разрешения папки «журналы», которая находится в / home / ubuntu, составляет 755 и root: root, то же самое для / mnt - разрешение 755 и root: root. Но я не понимаю, почему я получаю ошибку разрешения, когда устанавливаю вывод как /mnt/local.dump.
Мне не удалось воспроизвести описанные вами симптомы в Ubuntu 14.04. Но я видел эти симптомы в более ранних версиях Ubuntu.
Я обнаружил, что причина в том, что SELinux был настроен так, чтобы ограничивать tcpdump
разрешили писать.
В то время я нашел обходной путь: скопировать /usr/sbin/tcpdump
к /root/bin/tcpdump
и используйте эту копию вместо этого.
Я столкнулся с этой же проблемой в Ubuntu. Похоже, что tcpdump сбрасывает разрешения после выполнения на основе принятого ответа на этот вопрос:
Ошибка tcpdump с отказом в разрешении на centos при использовании с параметром повернутого файла
Я сам не сталкивался с проблемой разрешения, пока не начал экспериментировать с параметрами -C для ограничения размеров файлов. Даже удаление исходного файла, которое у меня было в -w, не привело к восстановлению разрешений и не изменило -w на другой файл в том же каталоге.
Что действительно работало, так это изменение каталогов на место, которое принадлежало root и имело свободные ограничения для целевого каталога и родительских путей.
Я не уверен, что tcpdump делает под капотом, чтобы вызвать эту проблему, возможно, в другой раз я еще немного разобрался бы. Я думаю, что это может что-то кешировать, и как только вы попробуете вариант с вращающимся файлом, если ваши разрешения не настроены правильно, это также нарушит параметры неповорачиваемого файла.