Для сокета семейства PF_PACKET требуются права суперпользователя. Как это настроено в Linux? - PullRequest
0 голосов
/ 17 сентября 2011

Я знаю тот факт, что сокету семейства PF_PACKET требуется привилегия root,

но я не знаю, как это настроено в Linux.

Кто-нибудь знает как, это жестко закодировано в ядре напрямую?

1 Ответ

1 голос
/ 17 сентября 2011

Раньше было так, что это было просто жестко закодировано в ядре.

Но начиная с версии 2.2, в Linux появились возможности (см. http://linux.die.net/man/7/capabilities), и теперь ядро ​​проверяет возможность CAP_NET_RAW - см. net / packet / af_packet.c .

Предполагается, что пользователь root по-прежнему обладает всеми возможностями. Хотя имейте в виду, что с виртуализацией и несколькими контейнерами может быть несколько разных пользователей root, поэтому даже проверка на наличие root-прав сейчас немного сложнее, чем просто проверка uid == 0 - см. security / commoncap.c .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...