Re: Как безопасно запустить недовереное приложение?
dimas writes: > 2015-357 15:41 Artem Chuprina wrote: >> помнится, как-то попытался так сделать в скрипте бэкапа. Оно на >> голубом глазу перемонтировало в ro корень. Может, конечно, ошибся, но >> кажется, я потом это поведение отдельно проверял... > > блин, внатуре фигня какая-то: >>18:01:34 357 ~$ sudo mount / -o bind,ro /mnt -v > [sudo] пароль для dimas: > mount: / bound on /mnt. >>18:01:50 357 ~$ mount | grep "/mnt" > /dev/mapper/debian-root on /mnt type reiserfs (rw,relatime) >>18:02:34 357 ~$ sudo mount /mnt -o remount,ro -v > mount: /mnt is busy >>18:03:10 357 ~$ cat /proc/mounts | grep "/mnt" > /dev/dm-1 /mnt reiserfs rw,relatime 0 0 > > или даже так >>18:05:17 357 ~$ mkdir /tmp/test >>18:06:00 357 ~$ sudo mount /tmp/test/ -o bind,ro /mnt -v > mount: /tmp/test bound on /mnt. >>18:06:14 357 ~$ cat /proc/mounts | grep "/mnt" > /dev/dm-1 /mnt reiserfs rw,relatime 0 0 >>18:06:22 357 ~$ sudo mount /mnt/ -o remount,ro -v > mount: /mnt is busy > > wtf??? Пардон, в современных системах (в которых /etc/mtab не файл, а ссылка на /proc/mounts), во вторую команду нужно добавить -o bind: mount --bind / /mnt/test mount -o remount,ro,bind /mnt/test (см. man 8 mount). Так всё работает (только что проверил, оригинальный /root остаётся rw, /mnt/test в ro, никаких busy). Стоит отметить, что если у запущенного в chroot процесса остаётся CAP_SYS_ADMIN, он может это readonly откатить (и много чего другого нехорошего сделать), так что если это не защита от самострела, надо пользоваться чем-то более продвинутым (тот же уже упомянутый firejail, lxc, и так далее).
Re: Как безопасно запустить недовереное приложение?
2015-357 15:41 Artem Chuprina wrote: > помнится, как-то попытался так сделать в скрипте бэкапа. Оно на > голубом глазу перемонтировало в ro корень. Может, конечно, ошибся, но > кажется, я потом это поведение отдельно проверял... блин, внатуре фигня какая-то: >18:01:34 357 ~$ sudo mount / -o bind,ro /mnt -v [sudo] пароль для dimas: mount: / bound on /mnt. >18:01:50 357 ~$ mount | grep "/mnt" /dev/mapper/debian-root on /mnt type reiserfs (rw,relatime) >18:02:34 357 ~$ sudo mount /mnt -o remount,ro -v mount: /mnt is busy >18:03:10 357 ~$ cat /proc/mounts | grep "/mnt" /dev/dm-1 /mnt reiserfs rw,relatime 0 0 или даже так >18:05:17 357 ~$ mkdir /tmp/test >18:06:00 357 ~$ sudo mount /tmp/test/ -o bind,ro /mnt -v mount: /tmp/test bound on /mnt. >18:06:14 357 ~$ cat /proc/mounts | grep "/mnt" /dev/dm-1 /mnt reiserfs rw,relatime 0 0 >18:06:22 357 ~$ sudo mount /mnt/ -o remount,ro -v mount: /mnt is busy wtf???
Re: Как безопасно запустить недовереное приложение?
yum...@gmail.com (Yuriy M. Kaminskiy) writes: > Artem Chuprina writes: > >> dimas writes: >> >>> 2015-356 17:40 Victor Wagner wrote: > $ sudo debootstrap --include=iceweasel > stable /path/to/chroot-deb-stable/ Да, примерно так. >>> а если сделать бинд-маунтом ридонли-копию реальной системы? поверх того, что >>> показывать не хотим, намонтировать пустой каталог, что хотим дать на запись >>> - >>> бинд-маунтом в rw. >> >> У меня есть устойчивое ощущение, что bind-mount разучился ставить >> подмонтированное в ro. > > IIRC, это теперь просто надо делать в два шага: > > mount --bind / /foo > mount -o remount,ro /foo Я, помнится, как-то попытался так сделать в скрипте бэкапа. Оно на голубом глазу перемонтировало в ro корень. Может, конечно, ошибся, но кажется, я потом это поведение отдельно проверял... Там, правда, дело было под OpenVZ, возможны еще нюансы оттуда. Короче, я бы все же проверил, прежде чем рекомендовать.
Re: Как безопасно запустить недовереное приложение?
Artem Chuprina writes: > dimas writes: > >> 2015-356 17:40 Victor Wagner wrote: >>> > $ sudo debootstrap --include=iceweasel >>> > stable /path/to/chroot-deb-stable/ >>> Да, примерно так. >> а если сделать бинд-маунтом ридонли-копию реальной системы? поверх того, что >> показывать не хотим, намонтировать пустой каталог, что хотим дать на запись - >> бинд-маунтом в rw. > > У меня есть устойчивое ощущение, что bind-mount разучился ставить > подмонтированное в ro. IIRC, это теперь просто надо делать в два шага: mount --bind / /foo mount -o remount,ro /foo
Re: Как безопасно запустить недовереное приложение?
dimas writes: > 2015-356 17:40 Victor Wagner wrote: >> > $ sudo debootstrap --include=iceweasel >> > stable /path/to/chroot-deb-stable/ >> Да, примерно так. > а если сделать бинд-маунтом ридонли-копию реальной системы? поверх того, что > показывать не хотим, намонтировать пустой каталог, что хотим дать на запись - > бинд-маунтом в rw. У меня есть устойчивое ощущение, что bind-mount разучился ставить подмонтированное в ro.