MD> suid биты не работают на скриптах, ибо нефиг. непонятно, почему собственно?
MD> Наверное самым прямым тут будет использовать sudo. мне нужно чтобы юзер мог прихлопнуть один конкретный процесс, который выполняется под рутом. Что мне ему, давать su на целый kill ?
> Mykola Dzham <i.in.n...@levsha.org.ua> wrote: > MD> suid биты не работают на скриптах, ибо нефиг. > непонятно, почему собственно?
> MD> Наверное самым прямым тут будет использовать sudo. > мне нужно чтобы юзер мог прихлопнуть один конкретный процесс, > который выполняется под рутом. Что мне ему, давать su на целый kill ?
> ладно, подумаю, спасибо за подсказку
> - andr
А почему ему нельзя в sudoers конкретно этот процесс и прописать? Причем вместе с килом, т.е. всю командную строку и вбахать. У меня так юзера сидюки и самбу монтируют, а все остальное - фигу. И только его бы он бы и смог бы выполнить бы. А на все остальное ему бы тоже дулю показали. Вроде бы дыры никакой не получается... Пока. Тимофей Андреевский
TA> и самбу монтируют, а все остальное - фигу. И только его бы он бы и смог бы TA> выполнить бы. А на все остальное ему бы тоже дулю показали. Вроде бы дыры TA> никакой не получается...
да некогда мне читать-изучать конфиги - работы валом; я не понимаю, где дыра, если к скрипту стики-бит прилепить. я сделал просто int main () { execl ( "/path/to/myscript", "myscript", NULL ) ;
}
а читать ман суду надо пол-дня убить; как-нибудь потом;
Andrew Wingorodov wrote: > Timofey Andreewski <timo...@cardio.ru> wrote: > TA> и самбу монтируют, а все остальное - фигу. И только его бы он бы и смог бы > TA> выполнить бы. А на все остальное ему бы тоже дулю показали. Вроде бы дыры > TA> никакой не получается...
> да некогда мне читать-изучать конфиги - работы валом; > я не понимаю, где дыра, если к скрипту стики-бит прилепить. > я сделал просто > int main () > { > execl ( "/path/to/myscript", "myscript", NULL ) ; > } > а читать ман суду надо пол-дня убить; как-нибудь потом;
Знаю я одного такого "пейсателя", он тоже любитель кучи суидных прог. Когда я ему в подобном случае вместо /path/to/myscript подсунул /usr/local/bin/bash (ну оказалась свободной для записи директория, что ж тут поделать), он все-равно не поверил что так делать это только лишние дырки в системе сверлить.
> а читать ман суду надо пол-дня убить; как-нибудь потом;
А убить вот уже два дня на переписку в конфе, написание всякой фигни и т.п. ерунду есть время? Не говоря уже о том, что ман у суда читать не надо, а надо залезть в пример скрипта, где все это уже написано. Делов максимум на пол-часика... Для совсем ленивых могу экземплом похвастаться (может, конечно, и не самый лучший образец, но зато работает):
Это разрешает Пете и Васе кое-че монтировать/отмонтировать и ходить в инет. Я думаю, в свете предыдущей дискуссии может заинтересовать первая команда второй переменной. Успехофф. Тимофей Андреевский.
Evgeny Chevtaev wrote: > порекомендовали же отличный способ - sudo,
Кстати, раз заговорили, давно хотел спросить. Как устроен sudoedit, что из вызванного им редактора вызываешь /bin/sh, к примеру - а он не рутовый, а того пользователя, который sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?
02 июн 2005, четверг, в 18:55 KRAST, Victor Sudakov написал(а):
>> порекомендовали же отличный способ - sudo, VS> Кстати, раз заговорили, давно хотел спросить. VS> Как устроен sudoedit, что из вызванного им редактора вызываешь VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?
The getuid() function returns the real user ID of the calling process. The geteuid() function returns the effective user ID of the calling process.
Видимо, sudoedit запускается с повышенным EUID, но с исходным RUID (так запускаются все suid-бинари), запоминает RUID и между fork() и exec() делает setuid().
EC> понадобится этому юзеру что-то ещё дать, опять будешь на сях писать? EC> порекомендовали же отличный способ - sudo, так ведь надо велосипед строить. EC> коту делать нефиг - он яйца лижет (с) народная мудрость
так это про пользователей sudo народная муДость! весь мой велосипед состоит из одной строчки
Eugene Grosbein wrote: > >> порекомендовали же отличный способ - sudo, > VS> Кстати, раз заговорили, давно хотел спросить. > VS> Как устроен sudoedit, что из вызванного им редактора вызываешь > VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который > VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?
> The getuid() function returns the real user ID of the calling process. > The geteuid() function returns the effective user ID of the calling process.
> Видимо, sudoedit запускается с повышенным EUID, но с исходным RUID > (так запускаются все suid-бинари), запоминает RUID и между > fork() и exec() делает setuid().
А это не факт. Например, /bin/sh имеет ключик -p. Если его вызвать без этого ключа, то он сам при старте сбросит EUID и EGID в значения из real UIG и GID.
03 июн 2005, пятница, в 09:48 KRAST, Constantin Stefanov написал(а):
>> Видимо, sudoedit запускается с повышенным EUID, но с исходным RUID >> (так запускаются все suid-бинари), запоминает RUID и между >> fork() и exec() делает setuid(). CS> А это не факт. Hапример, /bin/sh имеет ключик -p. Если его вызвать без CS> этого ключа, то он сам при старте сбросит EUID и EGID в значения из real CS> UIG и GID.
С одной стороны, это хорошо, с другой стороны - засада. Я в свое время из-за незнания этой фичи ;-) убил довольно много времени, так и не понял в чем проблема и добавил setuid() перед вызовом /bin/sh, благо условия позволяли.
Eugene -- Как ни отмывай задний проход, он не станет глазом. (Дхарма)
Thu Jun 02 2005 19:55, Victor Sudakov wrote to Evgeny Chevtaev:
VS> Кстати, раз заговорили, давно хотел спросить. VS> Как устроен sudoedit, что из вызванного им редактора вызываешь VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?
Я дико извеняюсь, но "man sudo" о ключике -e. Там алгоритм расписан :)
> VS> Кстати, раз заговорили, давно хотел спросить. > VS> Как устроен sudoedit, что из вызванного им редактора вызываешь > VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который > VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?
> Я дико извеняюсь, но "man sudo" о ключике -e. Там алгоритм расписан :)
Слона-то я и не приметил. Выходит, всё просто и остроумно - редактируются временные копии файлов, а редактор так и работает всё время от простого пользователя.
Hello, Eugene! You wrote to Constantin Stefanov on Fri, 03 Jun 2005 14:54:47 +0400: EG> С одной стороны, это хорошо, с другой стороны - засада. Я в свое время EG> из-за незнания этой фичи ;-) убил довольно много времени, так и не EG> понял в чем проблема и добавил setuid() перед вызовом /bin/sh, благо EG> условия позволяли. А уж не поломали-ли чего во фре по этому поводу? =========Beginning of the citation============== $ mkdir tmp $ chmod 700 tmp $ cp /bin/sh tmp $ sudo chown root tmp/sh $ sudo chmod 4755 tmp/sh $ tmp/sh -c "id -un" root $
=========The end of the citation================ Бардак? Или генеральная линия сменилась? Судя по документации все-таки второе и похоже достаточно давно.
With best regards, Dmitry Miloserdov. E-mail: dmi...@bis.ru
AW> так это про пользователей sudo народная муДость! AW> весь мой велосипед состоит из одной строчки AW> AW> ::exec ( "/bin/sh", "sh", "/path_to_script.sh" ) ; AW> AW> я тебе дольше этот ответ писал. суду - это для тех, кто не понял! AW> :-)
Ты эту строку в резюме включи. Чтобы тебя случайно на работу в серьёзное место не взяли.
Alex Semenyaka <Alex.Semeny...@p640.f640.n461.z2.fidonet.org> wrote:
AS> Ты эту строку в резюме включи. Чтобы тебя случайно на работу в серьёзное место AS> не взяли.
а в чём проблемы то? работает. давайте не будем вы@бываться и оценивать уровень соседа. на моем софте проходило голосование евровидения-2005 между прочим и отработало все замечательно. в серъёзном месте я уже давно работаю, а не работаю там, где такие вот как ты умники-оценщики оценивают. один вот тоже так оценивал-оценивал, шерсть на носу, взяли его закинули на дерево, больше не оценивает.
AW> Alex Semenyaka <Alex.Semeny...@p640.f640.n461.z2.fidonet.org> wrote: AS>> Ты эту строку в резюме включи. Чтобы тебя случайно на работу в серьёзное место AS>> не взяли.
AW> а в чём проблемы то? работает. давайте не будем вы@бываться и оценивать AW> уровень соседа. на моем софте проходило голосование евровидения-2005 AW> между прочим и отработало все замечательно. в серъёзном месте я уже AW> давно работаю, а не работаю там, где такие вот как ты умники-оценщики AW> оценивают. один вот тоже так оценивал-оценивал, шерсть на носу, взяли его AW> закинули на дерево, больше не оценивает.
Давно таких пальцатых не было в эхе. Давай еще чего нибудь расскажи нам, повеселиться охота.
07 июн 2005, вторник, в 10:18 KRAST, Gleb Smirnoff написал(а):
AW>> мне маны читать некогда, я программист. GS> ROTFL! Ф цытаты!!!
Однозначно (c)
Eugene -- Тестоголовые кислое свое брожение приняли за душу, распарывание чрев своих - за историю, средства, оттягивающие разложение - за цивилизацию...
Andrew Wingorodov wrote: > Alex Semenyaka <Alex.Semeny...@p640.f640.n461.z2.fidonet.org> wrote: > AS> Ты эту строку в резюме включи. Чтобы тебя случайно на работу в серьёзное место > AS> не взяли.
> а в чём проблемы то? работает. давайте не будем вы@бываться и оценивать > уровень соседа. на моем софте проходило голосование евровидения-2005 > между прочим и отработало все замечательно. в серъёзном месте я уже > давно работаю, а не работаю там, где такие вот как ты умники-оценщики > оценивают. один вот тоже так оценивал-оценивал, шерсть на носу, взяли его > закинули на дерево, больше не оценивает.
AW> Alex Semenyaka <Alex.Semeny...@p640.f640.n461.z2.fidonet.org> wrote: AS>> Ты эту строку в резюме включи. Чтобы тебя случайно на работу в AS>> серьёзное место не взяли. AW> а в чём проблемы то? работает.
Кто б сомневался.
AW> давайте не будем вы@бываться и оценивать уровень соседа. на моем AW> софте проходило голосование евровидения-2005 между прочим и AW> отработало все замечательно.
При чём тут твой софт? То, что ты предложил - криво и дыряво. Возможно, ты гениальный программист, и Господь Бог нервно курит в углу, когда ты программируешь. Hо сисадмин из тебя пока что никакой. Какое слово неясно?
AW> в серъёзном месте я уже давно работаю, а не работаю там, где такие AW> вот как ты умники-оценщики оценивают. один вот тоже так AW> оценивал-оценивал, шерсть на носу, взяли его закинули на дерево, AW> больше не оценивает.