[devel] sucap + execcap = ...

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Июн 13 19:30:11 MSD 2006


On Tue, Jun 13, 2006 at 07:04:18PM +0400, Alexey Tourbin wrote:
> On Tue, Jun 13, 2006 at 04:13:33PM +0400, Dmitry V. Levin wrote:
> > On Tue, Jun 13, 2006 at 02:06:48PM +0400, Alexey Tourbin wrote:
> > > Из cron.daily нужно запускать программу на шелле (примерно как osec),
> > > при этом желательно выполнять программу от псевдопользователя и
> > > сбросить все права, кроме CAP_DAC_READ_SEARCH (которые должны быть как у
> > > рута).  Как это сделать с помощью libcap-utils?
> > > 
> > > # sucap at at ls         
> > > Caps: =ep cap_setpcap-ep
> > 
> > Без setpcap с помощью sucap никак не сделать.
> 
> А как с setpcap сделать?
> 
> # su -l nobody -s /bin/sh -c 'sleep 999999' &
> [1] 14437
> # /sbin/setpcaps -q cap_dac_read_search=eip $!
> [caps set to:
> = cap_dac_read_search+eip
> ]
> Failed to set cap's on process `14437': (Operation not permitted)

В общем есть типовая задача: рут хочет запускать скрипты
с пониженными привилегями (от псевдопользователя), но с некоторыми
рутовыми capabilities.

   At some point, I decided I'd like to run a certain program non-root
   with certain capabilities only. I looked at the above two programs
   and stupidly thought they'd actually allow me to do this.
http://www.uwsg.iu.edu/hypermail/linux/kernel/0503.1/2540.html

Оказывается, что приемлемого решения этой типовой задачи нет.
Что нужно, вроде ясно:

suexeccap -u $uid -g $gid -c $cap -- qa-robot -m root на localhost psec /lib /usr/lib
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060613/51ad8c23/attachment-0001.bin>


Подробная информация о списке рассылки Devel