On Fri, Aug 10, 2007 at 01:14:30PM +0300, Aleksey Cheusov wrote: > > >> Без применения "спецсредств" приходит на ум только chroot > >> с подмонтированными каталогами в ro вперемешку с --bind на rw. > >> Но уж больно кривой костыль получается. > > Вы бы описали задачу подробнее, а то можно такого напридумовать, вплоть до > > размещения /usr на CD-R. > запустить процесс от root-а, длф которого накладываются следующие ограничения > (без возможности их снять, конечно): > 1) запретить запись в /usr > 2) РАЗРЕШИТЬ запись в /usr/local > 3) запретить запись в /etc > 4) запретить запись в /var > 5) РАЗРЕШИТЬ запись в /var/{dir1,dir2,dir3} > ... > > Примерно, так. Еще подробнее не смогу. > В *BSD для этого есть chroot и mount -t null, который в отличие от > линуксового mount --bind понимает опцию ro. > ПРОСТЫХ аналогов на горизоте не видно :( > Не ясно, умеет ли то, что нужно selinux, но он больше похож на пушку > для моей задачи-воробья. > chroot + локальный локальный NFS + ro - тоже костыль > (по сравнениею с mount -t null).
Попробуйте подойти к задаче с другого конца. Может, процессу и не нужно запускаться от рута? Например, если дело в bind() с привелигированным портом, есть разные варианты, как это обойти и пр. Если же Вам надо что-то вроде jail в *BSD, посмотрите в сторону http://linux-vserver.org/ -- Stanislav