* [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