Как работают возможности Unix? - PullRequest
0 голосов
/ 28 сентября 2011

похоже, что начиная с ядра 2.2, они ввели понятие Capabilities . Согласно справочной странице по возможностям Unix, в ней говорится, что если вы не являетесь пользователем root, вы можете предоставить себе возможности, вызвав cap_set_proc для каждого потока. Значит ли это, что если вы пишете вредоносную программу для Unix, вы просто предоставляете себе кучу возможностей и ставите под угрозу систему? Если нет, то как можно предоставить возможности, необходимые для запуска программы?

похоже, что модель безопасности Unix довольно ущербна примитивна. Я правильно понял?

Я пойду более конкретно:

Как вы (при работе от имени пользователя без полномочий root) отправляете сигнал другому процессу, работающему под другим пользователем? На странице справочного руководства говорится, что для этого вам нужна возможность CAP_KILL. Однако, читая справочную страницу о возможностях, я не уверен, как можно предоставить процессу такую ​​возможность.

Ответы [ 2 ]

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

С man cap_set_proc :

Обратите внимание, что по умолчанию единственными процессами, для которых доступен CAP_SETPCAP, являются процессы, запускаемые как поток ядра.(Обычно это включает init (8), kflushd и kswapd).Вам нужно будет перекомпилировать ядро, чтобы изменить это значение по умолчанию.

Поверьте мне, если бы это было так просто, я уверен, что кто-то уже воспользовался им.Модель безопасности Unix может быть простой по сравнению с другими операционными системами, но это не значит, что она «несовершенна».

0 голосов
/ 30 сентября 2011

это невозможно. Вместо этого используйте Socket или File.

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