[devel] Понижение прав с root не работает в alt-p8-rootfs-systemd
Vladimir D. Seleznev
vseleznv на altlinux.org
Сб Апр 18 20:19:46 MSK 2020
On Sat, Apr 18, 2020 at 09:12:53PM +0400, Ivan A. Melnikov wrote:
> On Sat, Apr 18, 2020 at 06:37:55PM +0300, Mikhail Novosyolov wrote:
> > 18.04.2020 17:23, Alexey Sheplyakov пишет:
> > > On Sat, Apr 18, 2020 at 05:12:52PM +0300, Mikhail Novosyolov wrote:
> > >> Сделал chroot на основе http://ftp.altlinux.org/pub/distributions/ALTLinux/images/p8/cloud/alt-p8-rootfs-systemd-x86_64.tar.xz
> > >>
> > >> Создал пользователя (useradd --uid 1000 user)
> > >>
> > >> но не могу войти под этим пользователем:
> > >>
> > >> [root на pay2 /]# su - user
> > >> su: exec failed
> > >>
> > >> [root на pay2 /]# strace -f su - user -c /bin/bash 2>&1 | grep bin/bash
> > >> execve("/bin/su", ["su", "-", "user", "-c", "/bin/bash"], 0x7ffccf65b4a8 /* 30 vars */) = 0
> > >> [pid 37104] execve("/bin/bash", ["-bash", "-c", "/bin/bash"], 0x12fa9a0 /* 17 vars */) = -1 EAGAIN (Ресурс временно недоступен)
> > >>
> > >> [root на pay2 /]# sudo -u user -i
> > >> -bash: fork: Ресурс временно недоступен
> > >> -bash-3.2$ ls
> > >> -bash: fork: Ресурс временно недоступен
> > >>
> > >> Как такое может быть?!
> > > ulimit -a
> > >
> > > Лимит на число процессов (на самом деле -- потоков) зачем-то выставлен в 512.
> > > Если у Вас в хост системе уже есть пользователь с UID 1000, и, например,
> > > запущен firefox с 100+ вкладок, desktop environment, и т.п., то шансов
> > > вписаться этот жлобский^W скудный лимит крайне мало. Пример.
> > >
> > > $ ps -T -u `whoami` |wc -l
> > > 806
> > >
> > > Хранятся эти настройки в /etc/security/limits.conf (и еще в каком-то месте).
> > Не. Дело не в ulimit.
>
> Если execve вернул EAGAIN, то скорее всего дело именно в нём.
> В том месте, где у Вас ls не запускается, посмотрите на
> ulimit -a, это builtin, ему вроде форк не нужен.
>
> > В соседнем контейнере с запуском от UID=1000 нет проблем.
>
> Так может он всё и исчерпал?
Очень удобно, что limits не виртуализируется.
--
WBR,
Vladimir D. Seleznev
Подробная информация о списке рассылки Devel