Как я могу отказаться от привилегий в Perl? - PullRequest
7 голосов
/ 26 мая 2009

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

Ответы [ 2 ]

10 голосов
/ 26 мая 2009
5 голосов
/ 26 мая 2009

Вам действительно не нужен модуль, хотя тот, на который ссылается Бенджи Йорк, выглядит довольно хорошо.

Просто установить UID с помощью $< и $>. См. perlvar для получения дополнительной информации об этом. Вы также можете установить GID таким образом, используя $( и $); обратите внимание, что вам нужно установить $) = "$target_gid $target_gid", если вы хотите удалить дополнительные группы. Не забудьте потом проверить на успех.

...