Название: SUID запуск скрипта Отправлено: ammaximus от Январь 21, 2014, 16:20 Делаю простой скрипт для настройки hosts. Вдруг оказалось, что suid-бит не работает! Никак не соображу что не так то??
Код: #! bin/sh владелец root права 106755 Проверил на нескольких linux - доступ к hosts запрещен Название: Re: SUID запуск скрипта Отправлено: Serr500 от Январь 21, 2014, 17:22 SUID к скриптам не применяется. Если кратко и упрощённо, то оболочка не может запустить скрипт с SUID, потому что ей надо вначале запустить интерпретатор под root, а у интерпретатора SUID нету.
Название: Re: SUID запуск скрипта Отправлено: ammaximus от Январь 22, 2014, 08:23 Действительно, спасибо.
А что если написать сишное приложение, которое будет вызывать команды через System, это будет исполняться из под рута или как тогда? Мне нужно править hosts и service network restart Название: Re: SUID запуск скрипта Отправлено: ammaximus от Январь 22, 2014, 08:47 через system все вызывается также, как обычный скрипт. Есть еще варианты?
Название: Re: SUID запуск скрипта Отправлено: Serr500 от Январь 22, 2014, 09:06 1) Бинарник, который будет всё делать сам.
2) Бинарник, который запустит командный интерпретатор со скриптом. У бинарника выставляем SUID. Название: Re: SUID запуск скрипта Отправлено: ammaximus от Январь 22, 2014, 13:07 2. System("/bin/sh /usr/local/bin/test") ?
3. Чтобы сделать все более грамотно начал рассматривать sudoers Код: Cmnd_Alias CMDS=/usr/local/bin/tryit Благодаря этой записи из под учетки test начал работать скрипт sudo tryit без запроса пароля Код: #! bin/sh Но если добавить туда service network restart - продолжает говорить неизвестная команда. В чем может быть дело? Название: Re: SUID запуск скрипта Отправлено: Serr500 от Январь 22, 2014, 14:52 Х.з. Если Debian/Ubuntu/Mint можно попробовать напрямую:
Код: /etc/init.d/networking restart Название: Re: SUID запуск скрипта Отправлено: ammaximus от Январь 23, 2014, 08:16 Спасибо, это помогло
|