программа, которую я разрабатываю, использует raw сокеты. По соображениям безопасности для запуска программы, использующей необработанные сокеты, программа должна запускаться под пользователем с действующим идентификатором 0 (root?) или имеют возможность: CAP_NET_RAW.
так что после сборки я установил возможность с:
sudo setcap cap_net_raw+ep <executable>
файл в терминале меняется на красный фон с черным текстом, и я не уверен, что это значит. Он по-прежнему имеет все другие атрибуты файлов других программ, когда running ls -l Так что я не уверен, что именно имеет изменения для него. Я проверил, что возможность установлена с getcap
проблема после запуска setcap. Загрузчику не удается загрузить другие общие объекты с сообщением об ошибке " не удается найти файл."Без setcap программа работает и загружает все необходимые общие объекты (при запуске от root) но я бы предпочел не делать этого. Путь к общему объекту задается в LD_LIBRARY_PATH переменные среды.
любые подсказки или советы о том, что изменилось с исполняемым файлом, чтобы заставить загрузчик не загружать другие общие объекты? Может ли это быть потому, что другие общие объекты, которые он связывает, не имеют этой возможности?
Спасибо за любую помощь.
Komp






















