Ubuntu: разрешить некорневым пользователям создавать и выдавать себя за пользователей - PullRequest
1 голос
/ 13 июля 2009

Я хочу написать сервер, который получает и выполняет код от имени ненадежных сторон.

Чтобы сделать это более безопасным, я хочу, чтобы код запускался как пользователь, который создан исключительно для запуска этого кода, а затем удален.

Как я могу предоставить пользователю без полномочий root создавать, выдавать себя за других пользователей и удалять их?

Ответы [ 4 ]

1 голос
/ 17 июля 2009

Единственный способ, которым вы могли бы сделать это, - это использовать прокси-программу с setuid root (т.е. chown root my-proxy-process; chmod 47nn my-proxy-process. настройка именованного пользователя и т. д.

Однако проблемы безопасности с этим должны быть достаточно очевидными. Один из способов ограничить это - убедиться, что ваш непривилегированный процесс выполняется с пользователем в группе имен. Затем выполните команду chown thet proxy с root: myprivategroup и выберите ее как 4710, чтобы ее могли выполнять только пользователи, являющиеся членами myprivategroup.

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

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

Для дополнительной безопасности (рекомендуется), используйте песочницу или тюрьму chroot, как указано mark4o.

1 голос
/ 13 июля 2009

Может быть, вы можете предоставить разрешения пользователю без полномочий root с помощью sudo и / etc / sudoers, но этот способ кажется небезопасным и не линейным. Я не знаю, что вам нужно, но, возможно, вы можете предварительно создать некоторых пользователей и затем использовать их.

0 голосов
/ 15 июля 2009

Это проблема, так как вы не можете использовать скрипт su vie без терминала (возможно, функция безопасности). Я уверен, что вы можете взломать свой путь через это, но это, вероятно, было сделано по уважительной причине.

0 голосов
/ 13 июля 2009

Вы захотите использовать какую-нибудь изолированную программную среду или виртуализация ; как минимум окружение chroot как минимум. Смотрите также Песочница в Linux .

...