@pumamd

UID от которого работают процессы в chroot окружений?

Задача: выполнить программу-сервис в chroot с ограниченными правами (те от лица обычного не-root пользователя).

При реализации данной функций пробовал утилиты chroot, chpst, но оба дают непонятный мне UID от которого они работают.

# chroot --userspec srv-1465:users /gh_mounts/ghroot /bin/bash
bash: /root/.bashrc: Permission denied
srv-1465@ds8 / $

Пользователь srv-1465 присутствует в /gh_mounts/ghroot/etc/passwd.

srv-1465@ds8 / $ id
uid=1046(srv-1465) gid=100(users) groups=100(users)


Собственно при выполнении приложения внутри chroot оно пытается прочитать недоступную ей /root папку.
  • Вопрос задан
  • 2501 просмотр
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Собственно при выполнении приложения внутри chroot оно пытаеться прочитать недоступную ей /root папку

Видимо потому, что вы запускаете не новую login-сессию и выполняете chroot пользователем root, от которого в переменных окружения остаются USER и т.п. Попробуйте
# chroot --userspec srv-1465:users /gh_mounts/ghroot /bin/bash -l
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
EvgenijDv
@EvgenijDv
C/C++ programmer
А что вы собственно хотели спросить? Почему нельзя прочитать /root ? Потому что вы сами сделали chroot и ограничили приложение корнем вашего chroot'а и соответствующими правами.
Ответ написан
Комментировать
@pumamd Автор вопроса
Проблему решил.

Приложение запущенное в chroot окружений пытается прочитать файлы из /root из за указанной переменных:
srv-1465@ds8 / $ id
uid=1046(srv-1465) gid=0(root) groups=100(users)
srv-1465@ds8 / $ env | grep root
USER=root
MAIL=/var/mail/root
HOME=/root
LOGNAME=root
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы