[PATCH 2/2] Setting more capabilities(CAP_CHOWN, CAP_DAC_OVERRIDE, CAP_DAC_READ_SEARCH and CAP_SETUID).

Igor Sysoev is at rambler-co.ru
Fri Mar 20 15:07:53 MSK 2009


On Fri, Mar 20, 2009 at 02:29:31PM +0300, Kirill A. Korinskiy wrote:

> At Fri, 20 Mar 2009 12:11:18 +0300,
> 
> Игорь, я пытался сделать патч в втом виде, что бы он угодил всем. Мне
> от него нужна только возможность делать bind от не привилегированного
> пользователя, ибо за pid/logs я вполне могу следить сам.
> 
> Вынести логику в две директивы use_bind_capability и
> use_full_capability в патче я постараюсь в ближайшее время.

Нужно понять смысл использования capabilities. Я пока вижу, что полезен
только CAP_NET_BIND_SERVICE. Остальное - шило на мыло.

> Igor Sysoev <is at rambler-co.ru> wrote:
> > 
> > On Fri, Mar 20, 2009 at 09:15:42AM +0200, Alex Vorona wrote:
> > 
> > > 20.03.2009 07:50, Igor Sysoev wrote:
> > > 
> > > >И вообще, эти capabilities где-нибудь документированы ? Я с ходу не нашёл,
> > > >что означают CAP_EFFECTIVE, CAP_PERMITTED и CAP_INHERITABLE.
> > > >
> > > Нашёл на 
> > > http://www.ibm.com/developerworks/ru/library/l-posixcap/l-posixcap.html
> > > >Каждый процесс имеет три набора прав доступа: доступные (permitted) (P), 
> > > >наследуемые (inheritable) (I) и текущие (effective) (E)
> > > 
> > > Похоже, это оно.
> > 
> > Спасибо. Лучше правда читать оригинал:
> > http://www.ibm.com/developerworks/linux/library/l-posixcap.html
> > 
> > потому что вот это:
> > 
> > Call prctl(2) to set PR_SET_KEEPCAPS, which asks the system to let
> > it keep its capabilities across setuid(2). 
> > 
> > явно не означает:
> > 
> > Вызвать prctl(2), чтобы установить PR_SET_KEEPCAPS, который через
> > setuid(2) запрашивает систему о сохранении его разрешений. 
> > 
> > Судя по capabilities(7):
> > 
> > http://www.freebsd.org/cgi/man.cgi?query=capabilities&apropos=0&sektion=0&manpath=SuSE+Linux%2Fi386+ES+10+SP1&format=ascii
> > 
> > имеет смысл разрешать только CAP_NET_BIND_SERVICE, потому что, насколько
> > я понимаю, разрешение CAP_DAC_OVERRIDE, CAP_DAC_READ_SEARCH и CAP_CHOWN
> > по сути разрешают делать процессу с файловой системой всё, что угодно
> > и мало чем отличается от рута. То есть, нужно делать директиву что-то вроде:
> > 
> > use_bind_capability;
> > 
> > которая бы разрешала только CAP_NET_BIND_SERVICE. В этом случае админ
> > должен сам позабодиться о файлах и прочая: он имеет мастера, работающего
> > под обычнм пользователем с возможностью bind'иться к 80 порту.
> > 
> > 
> > -- 
> > Игорь Сысоев
> > http://sysoev.ru
> > 
> 
> -- 
> wbr, Kirill

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list