В целом, когда дело доходит до доступа к файлам, устройствам и другим службам, предоставляемым ОС, модели доступа в Unix (и, следовательно, в Linux) реализуются в ОС.
Ожидается, что пользовательские программы будут просто пытаться делать то, что они хотят, и изящно обрабатывать любые ошибки, например. информирование пользователя с помощью сообщения.
Это имеет несколько преимуществ:
Поддерживаемость: принудительное применение политики доступа остается за ОС и может быть настроено единообразно. Администратор, который хочет ограничить доступ к ресурсу, делает это один раз , вместо того, чтобы настраивать эту библиотеку здесь, а не эту библиотеку там, а затем ...
Конфигурируемость: администратор может настроить простую или сложную политику доступа, которая ему нужна, без ограничения каждой реализацией пользовательского пространства.
Безопасность. В общем случае программам на пользовательском пространстве нельзя доверять применение политики доступа. Это как если бы волк охранял овец.
EDIT:
В вашем случае pcap
требуется низкоуровневый доступ к сетевому интерфейсу. Из-за последствий для безопасности (захват сетевого трафика, создание произвольных сетевых пакетов и т. Д.) Такой доступ ограничен только привилегированными пользователями. В Linux, например, pcap
требует, чтобы CAP_NET_RAW
возможность была доступна пользователю.