URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 697
[ Назад ]

Исходное сообщение
"Perl+root ( bin )"

Отправлено Андрей , 17-Апр-02 11:31 
Вопрос такой:
есть скрипт на perl, которые должен исполняться с правами root.
если не компилировать скрипт, то /usr/bin/suidperl работает.
Но если скопмилить ( мне это и надо ), то при выполнении при установленном suid-бите, выдается ошибка :
No -e allowed in setuid scripts.
А мне именно нужен бинарник.
Как быть-то ?
компилю через /usr/bin/perlcc -o ......

Содержание

Сообщения в этом обсуждении
"RE: Perl+root ( bin )"
Отправлено uldus , 18-Апр-02 12:33 
>выполнении при установленном suid-бите, выдается
>ошибка :
>No -e allowed in setuid scripts.
>
>А мне именно нужен бинарник.

То что выходит в результате perlcc - не совсем бинарник, грубо говоря - это промежуточный perl код с подключенным к нему компилятором (очень грубо говоря). Если нужно выполнять скрипт после perlcc от рута, рекомендую воспользоваться sudo или создать suid враппер написанный на Си, задачей которого является только запуск основного скрипта.

Ты бы описал что в твоем скрипте требует рутовых прав - думаю, можно найти другое решение, не требующие suid вообще.


"RE: Perl+root ( bin )"
Отправлено Андрей , 19-Апр-02 10:55 
>>выполнении при установленном suid-бите, выдается
>>ошибка :
>>No -e allowed in setuid scripts.
>>
>>А мне именно нужен бинарник.
>
>То что выходит в результате perlcc
>- не совсем бинарник, грубо
>говоря - это промежуточный perl
>код с подключенным к нему
>компилятором (очень грубо говоря). Если
>нужно выполнять скрипт после perlcc
>от рута, рекомендую воспользоваться sudo
>или создать suid враппер написанный
>на Си, задачей которого является
>только запуск основного скрипта.
>
>Ты бы описал что в твоем
>скрипте требует рутовых прав -
>думаю, можно найти другое решение,
>не требующие suid вообще.

Вообщем-то можно и без него обойтись, но так будет некрасиво, а задача - читать файл паролей.
И вроде как в данном случае права рута нужны, так как не хотелось бы давать кому-то права на чтение этого файла, кроме рута.
Т.е. я так понял, принципиально нельзя suid на perl ?



"RE: Perl+root ( bin )"
Отправлено Арлекин , 19-Апр-02 15:30 
И зачем чтение паролей делать в перлухе ? На сях - это 20 строчек кода. И НИКАКОГО гемора.

"RE: Perl+root ( bin )"
Отправлено Андрей , 20-Апр-02 10:58 
>И зачем чтение паролей делать в
>перлухе ? На сях -
>это 20 строчек кода. И
>НИКАКОГО гемора.

Гм... точно..:)
А я что-то к перлу привык.. об этом даже как-то не подумал... однако...



"RE: Perl+root ( bin )"
Отправлено uldus , 22-Апр-02 10:03 
>Вообщем-то можно и без него обойтись,
>но так будет некрасиво, а
>задача - читать файл паролей.

Мне кажетется, что некрасиво запускать весь скрипт от root ради чнения пароля. Напиши небольшую программу-враппер на Си (или лучше возми готовую, например, checkpassword http://pobox.com/~djb/checkpwd.html  которая в соответствии со строгим интерфейсом будет заниматься проверкой паролей.

PS. Я бы вообще плюнул на файл паролей и проверял правильность вода пароля через POP3 сервер.


"RE: Perl+root ( bin )"
Отправлено Андрей , 07-Май-02 12:33 
>>Вообщем-то можно и без него обойтись,
>>но так будет некрасиво, а
>>задача - читать файл паролей.
>
>Мне кажетется, что некрасиво запускать весь
>скрипт от root ради чнения
>пароля. Напиши небольшую программу-враппер на
>Си (или лучше возми готовую,
>например, checkpassword http://pobox.com/~djb/checkpwd.html  которая
>в соответствии со строгим интерфейсом
>будет заниматься проверкой паролей.
>
>PS. Я бы вообще плюнул на
>файл паролей и проверял правильность
>вода пароля через POP3 сервер.
>
программку на СИ написал, которая запускает на исполнение perl-скрипт... если на этой программке установить suid-бит - то такая же беда..
не хочет запускаться perl-скрипт...:(
Как быть-то ?


"RE: Perl+root ( bin )"
Отправлено Арлекин , 07-Май-02 17:37 
БЛИН ! На кой тебе вообще перл ? Сделай ты ее всю на Сях. Там один хидер и 2 функции.

"RE: Perl+root ( bin )"
Отправлено Андрей , 07-Май-02 18:31 
>БЛИН ! На кой тебе вообще
>перл ? Сделай ты ее
>всю на Сях. Там один
>хидер и 2 функции.
на Си сложновато, так как она еще на себе некоторые функции несет...
по сути это - прога управления ppp-юзерами,
там пароль поменять, добавить, удаплить, блокировать, и т.д.
а эта прога вызывается через апачи, через web-интерфейс.
видимо сдается мне, придется поменять owner на apache на chap-secrets файле :(