выполнение с правами суперюзера

107 views
Skip to first unread message

Andrew Wingorodov

unread,
May 30, 2005, 10:13:52 AM5/30/05
to

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

помню вроде бы для этого есть бит stiky, поставил его
> chmod u+s script.sh
> ll
rwsr-xr-x .... script.sh
> _

но не помогает - скрипт доступа не получает;
подскажите, может кто знает, копать некогда

спасибо

- andr.ru

Mykola Dzham

unread,
May 30, 2005, 10:21:00 AM5/30/05
to
Andrew Wingorodov wrote:
> как настроить скрипт для запуска его с правами рута?
> надо дать юзеру право выполнить одну команду.
>
> помню вроде бы для этого есть бит stiky, поставил его
> > chmod u+s script.sh
> > ll
> rwsr-xr-x .... script.sh
> > _
>
> но не помогает - скрипт доступа не получает;

suid биты не работают на скриптах, ибо нефиг.

> подскажите, может кто знает, копать некогда

Наверное самым прямым тут будет использовать sudo.

--
LEFT-(UANIC|RIPE)
JID: lev...@jabber.kiev.ua

Alexey Milevsky

unread,
May 30, 2005, 10:24:33 AM5/30/05
to
Hi!

>как настроить скрипт для запуска его с правами рута?

через sudo|su + интерпретатор + скрипт

>надо дать юзеру право выполнить одну команду.

если только одну команду - sudo

>помню вроде бы для этого есть бит stiky,

suid bit

> поставил его
>> chmod u+s script.sh
>> ll
> rwsr-xr-x .... script.sh
>> _
>
>но не помогает - скрипт доступа не получает;

все правильно - суидные скрипты "имелиcь ввиду".

>подскажите, может кто знает, копать некогда

все равно придется тратить время на формулирование задачи :)

--
A1ex.

Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Andrew Wingorodov

unread,
May 30, 2005, 10:29:37 AM5/30/05
to
Mykola Dzham <i.in...@levsha.org.ua> wrote:
MD> suid биты не работают на скриптах, ибо нефиг.
непонятно, почему собственно?

MD> Наверное самым прямым тут будет использовать sudo.
мне нужно чтобы юзер мог прихлопнуть один конкретный процесс,
который выполняется под рутом. Что мне ему, давать su на целый kill ?

ладно, подумаю, спасибо за подсказку

- andr

Andrew Wingorodov

unread,
May 30, 2005, 10:37:11 AM5/30/05
to
Alexey Milevsky <al...@pbank.donetsk.ua> wrote:
AM> все правильно - суидные скрипты "имелиcь ввиду".

ну и черт с ними, щас на Сях по-быстрому напишу.
по-моему - глупость. лишний перетрах.

- andr

Timofey Andreewski

unread,
May 30, 2005, 11:17:52 AM5/30/05
to

"Andrew Wingorodov" <an...@sms-tv.ru> сообщил/сообщила в новостях следующее:
news:d7f7vb$2gev$1...@news.rtcomm.ru...

А почему ему нельзя в sudoers конкретно этот процесс и прописать? Причем
вместе с килом, т.е. всю командную строку и вбахать. У меня так юзера сидюки
и самбу монтируют, а все остальное - фигу. И только его бы он бы и смог бы
выполнить бы. А на все остальное ему бы тоже дулю показали. Вроде бы дыры
никакой не получается...
Пока.
Тимофей Андреевский


Andrew Wingorodov

unread,
May 31, 2005, 2:03:43 AM5/31/05
to
Timofey Andreewski <tim...@cardio.ru> wrote:
TA> и самбу монтируют, а все остальное - фигу. И только его бы он бы и смог бы
TA> выполнить бы. А на все остальное ему бы тоже дулю показали. Вроде бы дыры
TA> никакой не получается...

да некогда мне читать-изучать конфиги - работы валом;
я не понимаю, где дыра, если к скрипту стики-бит прилепить.
я сделал просто
int main ()
{
execl ( "/path/to/myscript", "myscript", NULL ) ;
}
а читать ман суду надо пол-дня убить; как-нибудь потом;

- andr.ru

Mykola Dzham

unread,
May 31, 2005, 1:26:59 PM5/31/05
to

Знаю я одного такого "пейсателя", он тоже любитель кучи суидных прог.
Когда я ему в подобном случае вместо /path/to/myscript подсунул
/usr/local/bin/bash (ну оказалась свободной для записи директория, что
ж тут поделать), он все-равно не поверил что так делать это только
лишние дырки в системе сверлить.

Timofey Andreewski

unread,
May 31, 2005, 10:11:44 PM5/31/05
to
> а читать ман суду надо пол-дня убить; как-нибудь потом;
А убить вот уже два дня на переписку в конфе, написание всякой фигни и т.п.
ерунду есть время?
Не говоря уже о том, что ман у суда читать не надо, а надо залезть в пример
скрипта, где все это уже написано. Делов максимум на пол-часика...
Для совсем ленивых могу экземплом похвастаться (может, конечно, и не самый
лучший образец, но зато работает):

Cmnd_Alias MOUNTSU=/sbin/mount_smbfs *,/sbin/mount /cdrom,/sbin/umount
/cdrom,!/sbin/umount /,!/sbin/umount -a
Cmnd_Alias MPDREG=/usr/bin/killall mpd,/usr/local/sbin/mpd -bk
petia,vasia ALL=MOUNTSU,MPDREG

Это разрешает Пете и Васе кое-че монтировать/отмонтировать и ходить в инет.
Я думаю, в свете предыдущей дискуссии может заинтересовать первая команда
второй переменной.
Успехофф.
Тимофей Андреевский.


Evgeny Chevtaev

unread,
Jun 2, 2005, 8:10:48 AM6/2/05
to
Hi, Andrew!

Monday May 30 2005 18:37, Andrew Wingorodov -- Alexey Milevsky:

AM>> все правильно - суидные скрипты "имелиcь ввиду".

AW> ну и черт с ними, щас на Сях по-быстрому напишу.
AW> по-моему - глупость. лишний перетрах.

понадобится этому юзеру что-то ещё дать, опять будешь на сях писать?
порекомендовали же отличный способ - sudo, так ведь надо велосипед строить.

коту делать нефиг - он яйца лижет (с) народная мудрость

With best regards,
Evgeny

Victor Sudakov

unread,
Jun 2, 2005, 11:55:52 AM6/2/05
to
Evgeny Chevtaev wrote:
> порекомендовали же отличный способ - sudo,

Кстати, раз заговорили, давно хотел спросить.
Как устроен sudoedit, что из вызванного им редактора вызываешь
/bin/sh, к примеру - а он не рутовый, а того пользователя, который
sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?

--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/49@fidonet http://vas.tomsk.ru/

Eugene Grosbein

unread,
Jun 3, 2005, 12:45:29 AM6/3/05
to
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().

Eugene
--
Choose your future

Andrew Wingorodov

unread,
Jun 3, 2005, 2:39:29 AM6/3/05
to
Evgeny Chevtaev <Evgeny....@f235.n5010.z2.fidonet.org> wrote:
EC> понадобится этому юзеру что-то ещё дать, опять будешь на сях писать?
EC> порекомендовали же отличный способ - sudo, так ведь надо велосипед строить.
EC> коту делать нефиг - он яйца лижет (с) народная мудрость

так это про пользователей sudo народная муДость!
весь мой велосипед состоит из одной строчки

::exec ( "/bin/sh", "sh", "/path_to_script.sh" ) ;

я тебе дольше этот ответ писал. суду - это для тех, кто не понял! :-)

- andr.ru

Constantin Stefanov

unread,
Jun 3, 2005, 2:48:09 AM6/3/05
to
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.

--
Константин Стефанов

Eugene Grosbein

unread,
Jun 3, 2005, 6:54:47 AM6/3/05
to
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
--
Как ни отмывай задний проход, он не станет глазом. (Дхарма)

Anatoli Klassen

unread,
Jun 3, 2005, 4:23:12 AM6/3/05
to
Thu Jun 02 2005 19:55, Victor Sudakov wrote to Evgeny Chevtaev:

VS> Кстати, раз заговорили, давно хотел спросить.
VS> Как устроен sudoedit, что из вызванного им редактора вызываешь
VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который
VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?

Я дико извеняюсь, но "man sudo" о ключике -e. Там алгоритм расписан :)

Victor Sudakov

unread,
Jun 3, 2005, 4:39:43 AM6/3/05
to
Anatoli Klassen wrote:
>
> VS> Кстати, раз заговорили, давно хотел спросить.
> VS> Как устроен sudoedit, что из вызванного им редактора вызываешь
> VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который
> VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?
>
> Я дико извеняюсь, но "man sudo" о ключике -e. Там алгоритм расписан :)

Слона-то я и не приметил. Выходит, всё просто и остроумно - редактируются
временные копии файлов, а редактор так и работает всё время от
простого пользователя.

Dmitry Miloserdov

unread,
Jun 3, 2005, 6:01:56 AM6/3/05
to
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

Alex Semenyaka

unread,
Jun 5, 2005, 9:34:02 AM6/5/05
to
Hello Andrew!

03 Jun 05 10:39, you wrote to Evgeny Chevtaev:

AW> так это про пользователей sudo народная муДость!
AW> весь мой велосипед состоит из одной строчки
AW>
AW> ::exec ( "/bin/sh", "sh", "/path_to_script.sh" ) ;
AW>
AW> я тебе дольше этот ответ писал. суду - это для тех, кто не понял!
AW> :-)

Ты эту строку в резюме включи. Чтобы тебя случайно на работу в серьёзное место
не взяли.

Alex

Andrew Wingorodov

unread,
Jun 7, 2005, 3:08:26 AM6/7/05
to
Alex Semenyaka <Alex.Se...@p640.f640.n461.z2.fidonet.org> wrote:
AS> Ты эту строку в резюме включи. Чтобы тебя случайно на работу в серьёзное место
AS> не взяли.

а в чём проблемы то? работает. давайте не будем вы@бываться и оценивать
уровень соседа. на моем софте проходило голосование евровидения-2005
между прочим и отработало все замечательно. в серъёзном месте я уже
давно работаю, а не работаю там, где такие вот как ты умники-оценщики
оценивают. один вот тоже так оценивал-оценивал, шерсть на носу, взяли его
закинули на дерево, больше не оценивает.

мне маны читать некогда, я программист.

- andr.ru

Gleb Smirnoff

unread,
Jun 7, 2005, 3:18:10 AM6/7/05
to
Andrew Wingorodov <an...@sms-tv.ru> wrote:

AW> Alex Semenyaka <Alex.Se...@p640.f640.n461.z2.fidonet.org> wrote:
AS>> Ты эту строку в резюме включи. Чтобы тебя случайно на работу в серьёзное место
AS>> не взяли.

AW> а в чём проблемы то? работает. давайте не будем вы@бываться и оценивать
AW> уровень соседа. на моем софте проходило голосование евровидения-2005
AW> между прочим и отработало все замечательно. в серъёзном месте я уже
AW> давно работаю, а не работаю там, где такие вот как ты умники-оценщики
AW> оценивают. один вот тоже так оценивал-оценивал, шерсть на носу, взяли его
AW> закинули на дерево, больше не оценивает.

Давно таких пальцатых не было в эхе. Давай еще чего нибудь расскажи нам,
повеселиться охота.

AW> мне маны читать некогда, я программист.

ROTFL! Ф цытаты!!!

--
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE

Eugene Grosbein

unread,
Jun 7, 2005, 6:26:08 AM6/7/05
to
07 июн 2005, вторник, в 10:18 KRAST, Gleb Smirnoff написал(а):

AW>> мне маны читать некогда, я программист.

GS> ROTFL! Ф цытаты!!!

Однозначно (c)

Eugene
--
Тестоголовые кислое свое брожение приняли за душу, распарывание чрев
своих - за историю, средства, оттягивающие разложение - за цивилизацию...

Mykola Dzham

unread,
Jun 7, 2005, 3:43:17 AM6/7/05
to

Пиписькомерянье в полный рост. Браво!



> мне маны читать некогда, я программист.

В цитатник однозначно!

To moderator: сори, больше не буду :)

Alex Gotlib

unread,
Jun 7, 2005, 5:02:43 AM6/7/05
to
Hail there Andrew!.

Tue, 07 Jun 2005 at 04:08 GMT Andrew Wingorodov wrote:

AW> мне маны читать некогда, я программист.

Афтор, жжешь! Пеши еще! (с)

--
WBR, Alexander B. Gotlib,
mailto:al...@cca.usart.ru / ICQ# 13043204.
-|- -|-

Alex Semenyaka

unread,
Jun 7, 2005, 2:23:34 PM6/7/05
to
Hello Andrew!

07 Jun 05 11:08, you wrote to me:

AW> Alex Semenyaka <Alex.Se...@p640.f640.n461.z2.fidonet.org> wrote:
AS>> Ты эту строку в резюме включи. Чтобы тебя случайно на работу в

AS>> серьёзное место не взяли.
AW> а в чём проблемы то? работает.

Кто б сомневался.

AW> давайте не будем вы@бываться и оценивать уровень соседа. на моем
AW> софте проходило голосование евровидения-2005 между прочим и
AW> отработало все замечательно.

При чём тут твой софт? То, что ты предложил - криво и дыряво. Возможно, ты
гениальный программист, и Господь Бог нервно курит в углу, когда ты
программируешь. Hо сисадмин из тебя пока что никакой. Какое слово неясно?

AW> в серъёзном месте я уже давно работаю, а не работаю там, где такие
AW> вот как ты умники-оценщики оценивают. один вот тоже так
AW> оценивал-оценивал, шерсть на носу, взяли его закинули на дерево,
AW> больше не оценивает.

О. Да тут полный набор.

AW> мне маны читать некогда, я программист.

Это тоже в резюме впиши.

Alex

Sergey Mikhnenkov

unread,
Jun 8, 2005, 12:01:32 AM6/8/05
to
Hello Eugene.

07 Jun 05 14:26, you wrote to Gleb Smirnoff:

AW>>> мне маны читать некогда, я программист.
GS>> ROTFL! Ф цытаты!!!

EG> Однозначно (c)

Hам думать некогда, нам работать надо (c) одного человека, программиста БД, с
которым долго работал.

Sergey

Alexandr Oskolkov

unread,
Jun 11, 2005, 3:04:51 AM6/11/05
to
Hello, Andrew!


07 Jun 05 11:08, Andrew Wingorodov wrote to Alex Semenyaka:


[skip]
AW> как ты умники-оценщики оценивают. один вот тоже так оценивал-оценивал,
AW> шерсть на носу, взяли его закинули на дерево, больше не оценивает.

AW> мне маны читать некогда, я программист.

это 5+, неси зачетку! :)))))))

With best wishes,
Alexandr.


Valentin Nechayev

unread,
Aug 10, 2005, 4:16:09 PM8/10/05
to

>>> Victor Sudakov wrote:

>> порекомендовали же отличный способ - sudo,

VS> Кстати, раз заговорили, давно хотел спросить.
VS> Как устроен sudoedit, что из вызванного им редактора вызываешь
VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который
VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?

so'шка которая LD_PRELOAD'ом подгружается в редактор.
Метод не стопроцентный.


-netch-

Artem Ignatiev

unread,
Aug 11, 2005, 6:26:47 AM8/11/05
to
Hi, Valentin!
11 Aug 05, 00:16:09 Valentin Nechayev общал Victor Sudakov пpо всяких "Re:
выполнение с правами суперюзера"...

>>> порекомендовали же отличный способ - sudo,

VS>> Кстати, раз заговорили, давно хотел спросить. Как устроен sudoedit,
VS>> что из вызванного им редактора вызываешь /bin/sh, к примеру - а он не
VS>> рутовый, а того пользователя, который sudoedit вызывал. Это очень
VS>> правильно и хорошо, но как это сделано?
VN> so'шка которая LD_PRELOAD'ом подгружается в редактор.
VN> Метод не стопроцентный.

Мне кажется, что пpосто pедактоp не pутом вызывается.
Hа такие мысли меня навела медитация на стpочку

/var/tmp/fstab.nPb4uM3d: unmodified: line 1

после вызова sudoedit /etc/fstab

Artem

Valentin Nechayev

unread,
Aug 12, 2005, 2:18:40 AM8/12/05
to

>>> Artem Ignatiev wrote:

>>>> порекомендовали же отличный способ - sudo,
VS>>> Кстати, раз заговорили, давно хотел спросить. Как устроен sudoedit,
VS>>> что из вызванного им редактора вызываешь /bin/sh, к примеру - а он не
VS>>> рутовый, а того пользователя, который sudoedit вызывал. Это очень
VS>>> правильно и хорошо, но как это сделано?
VN>> so'шка которая LD_PRELOAD'ом подгружается в редактор.
VN>> Метод не стопроцентный.

AI> Мне кажется, что пpосто pедактоp не pутом вызывается.
AI> Hа такие мысли меня навела медитация на стpочку
AI> /var/tmp/fstab.nPb4uM3d: unmodified: line 1
AI> после вызова sudoedit /etc/fstab

Таки да.


-netch-

Victor Sudakov

unread,
Aug 12, 2005, 1:40:43 PM8/12/05
to
Valentin Nechayev wrote:
>
> VS> Как устроен sudoedit, что из вызванного им редактора вызываешь
> VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который
> VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?
>
> so'шка которая LD_PRELOAD'ом подгружается в редактор.

Неа. Оказывается, всё проще.

Reply all
Reply to author
Forward
0 new messages