ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] temporary root privileges from local process
@ 2006-05-17 17:52 Vadym Kononenko
  2006-05-17 22:07 ` Dmitry V. Levin
  0 siblings, 1 reply; 7+ messages in thread
From: Vadym Kononenko @ 2006-05-17 17:52 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Здравствуйте.
Возможно, немного оффтопик, так-что заранее извиняюсь.

Есть процесс, которому надо иногда рестартовать некую службу, что естественно 
можно сделать только имея привилегии суперпользователя, предварительно 
поправив ее конфигурационный файл. С правкой файла делаем просто - 
через "control" вешаем на него нужные права доступа. Но вот как быть с 
рестартом службы?
1. Через тот-же control выставлять нужные права доступа + SUID флаг на 
бинарник, созданный специально для этих целей.
2. Процесс вызывает утилиту "sudo", предварительно сконфигурированную на 
разрешение этой операции данному пользователю.
3. Ваш вариант?

Подскажите пожалуйста правильное решение.
-- 
Best regards.
Vadym Kononenko.
Kyiv, Ukraine.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [sisyphus] temporary root privileges from local process
  2006-05-17 17:52 [sisyphus] temporary root privileges from local process Vadym Kononenko
@ 2006-05-17 22:07 ` Dmitry V. Levin
  2006-05-18 11:37   ` Vadym Kononenko
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2006-05-17 22:07 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

[-- Attachment #1: Type: text/plain, Size: 1287 bytes --]

On Wed, May 17, 2006 at 08:52:50PM +0300, Vadym Kononenko wrote:
> Возможно, немного оффтопик, так-что заранее извиняюсь.
> 
> Есть процесс,

Непривилегированный?

> которому надо иногда рестартовать некую службу, что естественно 
> можно сделать только имея привилегии суперпользователя, предварительно 
> поправив ее конфигурационный файл.

Если непривилегированный процесс правит конфигурационный файл
привилегированного процесса, то этот первый процесс можно смело причислить
к привилегированным. :)

> С правкой файла делаем просто - 
> через "control" вешаем на него нужные права доступа. Но вот как быть с 
> рестартом службы?
> 1. Через тот-же control выставлять нужные права доступа + SUID флаг на 
> бинарник, созданный специально для этих целей.

Писать привиленированные специализированные программы тоже надо уметь.

> 2. Процесс вызывает утилиту "sudo", предварительно сконфигурированную на 
> разрешение этой операции данному пользователю.

Если вам нужно одноразовое решение на скорую руку, так можно сделать.

> Подскажите пожалуйста правильное решение.

Лучше, если некая служба будет сама принимать запросы на
переконфигурирование и перезапуск со стороны непривилегированных клиентов,
например, через unix domain socket.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [sisyphus] temporary root privileges from local process
  2006-05-17 22:07 ` Dmitry V. Levin
@ 2006-05-18 11:37   ` Vadym Kononenko
  2006-05-18 12:17     ` Dmitry V. Levin
  0 siblings, 1 reply; 7+ messages in thread
From: Vadym Kononenko @ 2006-05-18 11:37 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

четвер 18 травень 2006 01:07, Dmitry V. Levin написав:
> Лучше, если некая служба будет сама принимать запросы на
> переконфигурирование и перезапуск со стороны непривилегированных клиентов,
> например, через unix domain socket.
.. мечтать не вредно... :)

Спасибо за ответ.
Остановился на первом варианте, думаю, много вреда такая программа не 
наделает: :)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    if (geteuid() != 0) exit(1);

    setuid(0);

    return system("/sbin/service bluetooth reload");
}

-- 
Best regards.
Vadym Kononenko.
Kyiv, Ukraine.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [sisyphus] temporary root privileges from local process
  2006-05-18 11:37   ` Vadym Kononenko
@ 2006-05-18 12:17     ` Dmitry V. Levin
  2006-05-18 14:41       ` Vadym Kononenko
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2006-05-18 12:17 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

[-- Attachment #1: Type: text/plain, Size: 791 bytes --]

On Thu, May 18, 2006 at 02:37:18PM +0300, Vadym Kononenko wrote:
> четвер 18 травень 2006 01:07, Dmitry V. Levin написав:
> > Лучше, если некая служба будет сама принимать запросы на
> > переконфигурирование и перезапуск со стороны непривилегированных клиентов,
> > например, через unix domain socket.
> .. мечтать не вредно... :)
> 
> Спасибо за ответ.
> Остановился на первом варианте, думаю, много вреда такая программа не 
> наделает: :)
> 
> #include <stdio.h>
> #include <stdlib.h>
> 
> int main()
> {
>     if (geteuid() != 0) exit(1);
> 
>     setuid(0);
> 
>     return system("/sbin/service bluetooth reload");
> }

Это instant root, т.е. запускающий эту привилегированную программу
пользователь может не напрягаясь получить права setuid(0).


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [sisyphus] temporary root privileges from local process
  2006-05-18 12:17     ` Dmitry V. Levin
@ 2006-05-18 14:41       ` Vadym Kononenko
  2006-05-18 14:52         ` Dmitry V. Levin
  0 siblings, 1 reply; 7+ messages in thread
From: Vadym Kononenko @ 2006-05-18 14:41 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

четвер 18 травень 2006 15:17, Dmitry V. Levin написав:
> int main()
>
> > {
> >     if (geteuid() != 0) exit(1);
> >
> >     setuid(0);
> >
> >     return system("/sbin/service bluetooth reload");
> > }
>
> Это instant root, т.е. запускающий эту привилегированную программу
> пользователь может не напрягаясь получить права setuid(0).

Я так понимаю, это из-за запуска шелла с рутовыми правами? Тогда следующий 
вариант должен это исправлять:
    return execl("/sbin/service" , "service", "bluetooth", "reload", NULL);
?
-- 
Best regards.
Vadym Kononenko.
Kyiv, Ukraine.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [sisyphus] temporary root privileges from local process
  2006-05-18 14:41       ` Vadym Kononenko
@ 2006-05-18 14:52         ` Dmitry V. Levin
  2006-05-19  9:06           ` Vadym Kononenko
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2006-05-18 14:52 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

[-- Attachment #1: Type: text/plain, Size: 736 bytes --]

On Thu, May 18, 2006 at 05:41:52PM +0300, Vadym Kononenko wrote:
> четвер 18 травень 2006 15:17, Dmitry V. Levin написав:
> > int main()
> >
> > > {
> > >     if (geteuid() != 0) exit(1);
> > >
> > >     setuid(0);
> > >
> > >     return system("/sbin/service bluetooth reload");
> > > }
> >
> > Это instant root, т.е. запускающий эту привилегированную программу
> > пользователь может не напрягаясь получить права setuid(0).
> 
> Я так понимаю, это из-за запуска шелла с рутовыми правами? Тогда следующий 
> вариант должен это исправлять:
>     return execl("/sbin/service" , "service", "bluetooth", "reload", NULL);
> ?

/sbin/service - это shell-скрипт.
Как минимум вам нужно использовать execle.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [sisyphus] temporary root privileges from local process
  2006-05-18 14:52         ` Dmitry V. Levin
@ 2006-05-19  9:06           ` Vadym Kononenko
  0 siblings, 0 replies; 7+ messages in thread
From: Vadym Kononenko @ 2006-05-19  9:06 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

четвер 18 травень 2006 17:52, Dmitry V. Levin написав:
> /sbin/service - это shell-скрипт.
т.е. этот злополучный "instant root" в данном случае никак не обойти?
 Потому как /etc/rc.d/init.d/bluetooth - это тоже шелл-скрипт... :-\

> Как минимум вам нужно использовать execle.
Ваша правда. :)

-- 
Best regards.
Vadym Kononenko.
Kyiv, Ukraine.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-05-19  9:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-17 17:52 [sisyphus] temporary root privileges from local process Vadym Kononenko
2006-05-17 22:07 ` Dmitry V. Levin
2006-05-18 11:37   ` Vadym Kononenko
2006-05-18 12:17     ` Dmitry V. Levin
2006-05-18 14:41       ` Vadym Kononenko
2006-05-18 14:52         ` Dmitry V. Levin
2006-05-19  9:06           ` Vadym Kononenko

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git