Здравствуйте!
Вопрос очень простой. Есть программа, которая должна уметь работать, будучи запущенной от обычного пользователя, и будучи запущенной с устновленным SUID.В зависимости от режима запуска нужно немного меняеть поведение программы.
Вопрос: как внутри C/C++ программы узнать, запущена ли она просто от пользователя, или с установленным SUID?
> Вопрос: как внутри C/C++ программы узнать, запущена ли она просто от пользователя,
> или с установленным SUID?if (getuid() != geteuid())
/* SUID */
>> Вопрос: как внутри C/C++ программы узнать, запущена ли она просто от пользователя,
>> или с установленным SUID?
> if (getuid() != geteuid())
> /* SUID */Теперь рассказывай, как внедрить этот код в бинарник, например в /bin/ping, от простого пользователя?!
>>> Вопрос: как внутри C/C++ программы узнать, запущена ли она просто от пользователя,
>>> или с установленным SUID?
>> if (getuid() != geteuid())
>> /* SUID */
> Теперь рассказывай, как внедрить этот код в бинарник, например в /bin/ping, от
> простого пользователя?!Гм, командир, а пятки на ночь вам не почесать? :-) Про то, что за помощь воспитанные
люди обычно благодарят, распространяться не буду - бисеромет сломался. :-)По теме: берем исходник нужной программы, внедряем туда подсказанный код и собираем.
> Теперь рассказывай, как внедрить этот код в бинарник, например в /bin/ping, от
> простого пользователя?!А зачем??? ping сбрасывает SUID сразу после открытия сокета.