[devel] Как правильно определить, что мы внутри Hasher?

Dmitry V. Levin ldv на altlinux.org
Вт Авг 18 02:57:35 MSK 2020


On Tue, Aug 18, 2020 at 02:19:12AM +0300, Leonid Krivoshein wrote:
> 18.08.2020 1:59, Alexey V. Vissarionov пишет:
> > On 2020-08-18 01:51:59 +0300, Leonid Krivoshein wrote:
> >
> >   > Возможно вопрос совсем простой, но что-то не нахожу сходу
> >   > ответа.
> >   > $ hsh-run --rooter -- losetup -f 2>&1 |grep "No such device"
> >   > losetup: cannot find an unused loop device: No such device
> >   > Есть ли более правильный способ определения того, что это root
> >   > в хэшере, а не настоящий?
> >
> > Я бы через сетевую подсистему тестировал... там, насколько помню,
> > unshare() делается с CLONE_NEWNET.
> >
> > Попробуй hsh-run --rooter -- ip rou get 0

А если share_network=yes?

> Нашёл ещё такой вариант:
> 
> # chroot / /bin/sh -c exit; echo $?
> 0
> 
> $ hsh-run --rooter -- chroot / /bin/sh -c exit; echo $?
> chroot: cannot change root directory to '/': Operation not permitted
> 125

Так проще:
$ hsh-run --root -- chroot / /bin/true 

> Но вообще интересно, как правильно...

Для того, чтобы выяснить, достаточно ли настоящий root, протестируйте
выполнение той привилегированной операции, которая вам нужна.


-- 
ldv


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