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

Исходное сообщение
"Как узнать, запущена ли программа с битом SUID?"

Отправлено xintrea , 05-Сен-11 01:34 
Здравствуйте!


Вопрос очень простой. Есть программа, которая должна уметь работать, будучи запущенной от обычного пользователя, и будучи запущенной с устновленным SUID.

В зависимости от режима запуска нужно немного меняеть поведение программы.

Вопрос: как внутри C/C++ программы узнать, запущена ли она просто от пользователя, или с установленным SUID?


Содержание

Сообщения в этом обсуждении
"Как узнать, запущена ли программа с битом SUID?"
Отправлено guest , 05-Сен-11 09:12 
> Вопрос: как внутри C/C++ программы узнать, запущена ли она просто от пользователя,
> или с установленным SUID?

if (getuid() != geteuid())
    /* SUID */



"Как узнать, запущена ли программа с битом SUID?"
Отправлено AHAHAC , 07-Сен-11 22:28 
>> Вопрос: как внутри C/C++ программы узнать, запущена ли она просто от пользователя,
>> или с установленным SUID?
> if (getuid() != geteuid())
>     /* SUID */

Теперь рассказывай, как внедрить этот код в бинарник, например в /bin/ping, от простого пользователя?!



"Как узнать, запущена ли программа с битом SUID?"
Отправлено allez , 08-Сен-11 03:50 
>>> Вопрос: как внутри C/C++ программы узнать, запущена ли она просто от пользователя,
>>> или с установленным SUID?
>> if (getuid() != geteuid())
>>     /* SUID */
> Теперь рассказывай, как внедрить этот код в бинарник, например в /bin/ping, от
> простого пользователя?!

Гм, командир, а пятки на ночь вам не почесать? :-) Про то, что за помощь воспитанные
люди обычно благодарят, распространяться не буду - бисеромет сломался. :-)

По теме: берем исходник нужной программы, внедряем туда подсказанный код и собираем.


"Как узнать, запущена ли программа с битом SUID?"
Отправлено guest , 08-Сен-11 09:15 
> Теперь рассказывай, как внедрить этот код в бинарник, например в /bin/ping, от
> простого пользователя?!

А зачем??? ping сбрасывает SUID сразу после открытия сокета.