Вопрос такой:
есть скрипт на perl, которые должен исполняться с правами root.
если не компилировать скрипт, то /usr/bin/suidperl работает.
Но если скопмилить ( мне это и надо ), то при выполнении при установленном suid-бите, выдается ошибка :
No -e allowed in setuid scripts.
А мне именно нужен бинарник.
Как быть-то ?
компилю через /usr/bin/perlcc -o ......
>выполнении при установленном suid-бите, выдается
>ошибка :
>No -e allowed in setuid scripts.
>
>А мне именно нужен бинарник.То что выходит в результате perlcc - не совсем бинарник, грубо говоря - это промежуточный perl код с подключенным к нему компилятором (очень грубо говоря). Если нужно выполнять скрипт после perlcc от рута, рекомендую воспользоваться sudo или создать suid враппер написанный на Си, задачей которого является только запуск основного скрипта.
Ты бы описал что в твоем скрипте требует рутовых прав - думаю, можно найти другое решение, не требующие suid вообще.
>>выполнении при установленном suid-бите, выдается
>>ошибка :
>>No -e allowed in setuid scripts.
>>
>>А мне именно нужен бинарник.
>
>То что выходит в результате perlcc
>- не совсем бинарник, грубо
>говоря - это промежуточный perl
>код с подключенным к нему
>компилятором (очень грубо говоря). Если
>нужно выполнять скрипт после perlcc
>от рута, рекомендую воспользоваться sudo
>или создать suid враппер написанный
>на Си, задачей которого является
>только запуск основного скрипта.
>
>Ты бы описал что в твоем
>скрипте требует рутовых прав -
>думаю, можно найти другое решение,
>не требующие suid вообще.Вообщем-то можно и без него обойтись, но так будет некрасиво, а задача - читать файл паролей.
И вроде как в данном случае права рута нужны, так как не хотелось бы давать кому-то права на чтение этого файла, кроме рута.
Т.е. я так понял, принципиально нельзя suid на perl ?
И зачем чтение паролей делать в перлухе ? На сях - это 20 строчек кода. И НИКАКОГО гемора.
>И зачем чтение паролей делать в
>перлухе ? На сях -
>это 20 строчек кода. И
>НИКАКОГО гемора.Гм... точно..:)
А я что-то к перлу привык.. об этом даже как-то не подумал... однако...
>Вообщем-то можно и без него обойтись,
>но так будет некрасиво, а
>задача - читать файл паролей.Мне кажетется, что некрасиво запускать весь скрипт от root ради чнения пароля. Напиши небольшую программу-враппер на Си (или лучше возми готовую, например, checkpassword http://pobox.com/~djb/checkpwd.html которая в соответствии со строгим интерфейсом будет заниматься проверкой паролей.
PS. Я бы вообще плюнул на файл паролей и проверял правильность вода пароля через POP3 сервер.
>>Вообщем-то можно и без него обойтись,
>>но так будет некрасиво, а
>>задача - читать файл паролей.
>
>Мне кажетется, что некрасиво запускать весь
>скрипт от root ради чнения
>пароля. Напиши небольшую программу-враппер на
>Си (или лучше возми готовую,
>например, checkpassword http://pobox.com/~djb/checkpwd.html которая
>в соответствии со строгим интерфейсом
>будет заниматься проверкой паролей.
>
>PS. Я бы вообще плюнул на
>файл паролей и проверял правильность
>вода пароля через POP3 сервер.
>
программку на СИ написал, которая запускает на исполнение perl-скрипт... если на этой программке установить suid-бит - то такая же беда..
не хочет запускаться perl-скрипт...:(
Как быть-то ?
БЛИН ! На кой тебе вообще перл ? Сделай ты ее всю на Сях. Там один хидер и 2 функции.
>БЛИН ! На кой тебе вообще
>перл ? Сделай ты ее
>всю на Сях. Там один
>хидер и 2 функции.
на Си сложновато, так как она еще на себе некоторые функции несет...
по сути это - прога управления ppp-юзерами,
там пароль поменять, добавить, удаплить, блокировать, и т.д.
а эта прога вызывается через апачи, через web-интерфейс.
видимо сдается мне, придется поменять owner на apache на chap-secrets файле :(