2011-02-03 3 views
2

pcap_lookupdev() заполняет переменную errbuf при запуске как пользователь без полномочий root, тогда как одни и те же функции возвращают значение первого доступного сетевого интерфейса при запуске от имени пользователя root.Требование привилегий root для функций libpcap

Этот доступ отключен ОС или библиотекой. Я думаю, что это ОС. Каков правильный ответ?

Это не домашнее задание вопрос

ответ

6

В общем случае, когда речь заходит о доступе к файлам, устройствам и другим услугам, предоставляемым ОС, модели доступа в Unix (и, таким образом, Linux) реализованы в ОС.

Ожидается, что программы пользовательского пространства просто попробуют все, что они хотят, и грациозно обработать любое условие ошибки, например. информируя пользователя с сообщением.

Это имеет ряд преимуществ:

  • ремонтопригодность: применение политики доступа остается с операционной системой и может быть настроен равномерно. Администратор, который хочет, чтобы ограничить доступ к ресурсу, делает это раз, вместо того, чтобы настроить эту библиотеку здесь, чем эта библиотека есть, то ...

  • Конфигурируемости: Администратор может настроить в качестве простого или сложного апа политики доступа, в которых они нуждаются, не ограничиваясь каждой реализацией пользовательского пространства.

  • Безопасность: Программе пользовательского доступа вообще не следует доверять обеспечению политики доступа. Это было бы похоже на то, что волка охраняет овец.

EDIT:

В вашем случае, pcap необходим низкоуровневый доступ к сетевому интерфейсу. Из-за последствий безопасности (захват сетевого трафика, создание произвольных сетевых пакетов и т. Д.) Такой доступ ограничивается только привилегированными пользователями. В Linux, например, pcap нуждается в CAP_NET_RAW capability, который будет доступен для пользователя.

0

Многие функции PCAP требуют привилегий суперпользователя для правильной работы. Возможно, это проблема?

+1

Ну, это точно мой вопрос. Зачем ему нужны привилегии _root_? Во всяком случае, это ответ, я должен сказать, довольно красиво, по thkala –

Смежные вопросы