On Mon, 24 Jan 2000, Виктор Вислобоков wrote:

> From: Виктор Вислобоков <[EMAIL PROTECTED]>
> Subject: Видимо я лопух, но почему оно так делает?
> X-Mailer: Microsoft Outlook Express 4.72.3110.1
> 
> Привет всем.
> 
> Интересная тут у меня фича происходит.
> 
> Есть С-шная прога. Исполняемому файлу
> поставлен Suid'ный бит т.е. права выглядят
> следующим образом:
> 
> -rwsr-sr-x
> 
> из этой проги запускается путем execl
> скрипт, написанные на shell'е. Из этого
> скрипта, вызывается скрипт
> /etc/init.d/postgresql
> 
> Проблема состоит в том, что в /etc/init.d/postgresql
> есть вызов еще одного скрипта, в котором есть
> конструкции вида
> 
> su postgres -c "команда"
> 
> Так вот, когда я пускаю suid'ную программу от
> обычного пользователя и все это доходит у
> меня до su postgres ...
> то выдается диалог
> 
> password:
> 
> А почему собственно? Скрипт ведь должен
> выполняться с правами root'а. Где копать?

Потому что ты забыл из этой C-шной программы вызвать функцию
setreuid.

suid-програма выполняется с эффективным uid root, и с реальным uid
того кто запустил. А su смотрит на реальный uid.

Если у тебя стоит info документация на glibc почитай ее на тему
Changing process persona.

 
--------------------------------------------------
Victor Wagner                   [EMAIL PROTECTED]
Programmer                      Office:7-(095)-203-50-60
Institute for Commerce          Home: 7-(095)-135-46-61
Engineering                     http://www.ice.ru/~vitus

Ответить