Я хочу, чтобы минимальная установка Ubuntu Xenial использовалась в качестве каталога ch root, который будет использоваться sch root, чтобы позволить пользователям ch root в изолированной среде. Поскольку тюрьмы ch root будут вложены в непривилегированный контейнер LX C, мне пришлось использовать fakech root с fake root, чтобы создать среду через de bootstrap.
fakechroot fakeroot debootstrap --variant=minbase --arch=amd64 xenial /var/chroot/system http://archive.ubuntu.com/ubuntu
* 1003. * Для тестирования среды я использовал fakech root с командой ch root как root и как непривилегированный пользователь. Это позволило мне успешно войти в каталог ch root как оба пользователя.
fakechroot chroot /var/chroot/system
Как пользователь root, я также могу успешно запустить сеанс sch root и ch root в среду.
fakechroot schroot -c System
Однако при выполнении той же команды, что и непривилегированному пользователю, выдается ошибка, и я не могу ch root в среду.
ERROR: ld.so: object 'libfakechroot.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
E: Failed to execute "/bin/bash": no such file or directory
Мой файл /etc/schroot/schroot.conf выглядит следующим образом:
[System]
description=system
type=directory
directory=/var/chroot/system
groups=root,testUser
root-groups=root,testUser
profile=default
personality=linux
Я считаю, что эта ошибка может быть результатом LD_PRELOAD, ограничивающей использование вызовов setuid. Однако я не уверен, что sch root использует setuid, так как согласно документации sch root и root, и непривилегированные пользователи могут использовать команду sch root для запуска сеанса.
Если у кого-нибудь есть какие-либо объяснения или решения для этой ошибки, пожалуйста, дайте мне знать.