[lxc-users] Debian9.9 - running docker in lxc - loginuid proc permission issue

Jonathan Molyneux jonathan at infinitedepth.com.au
Mon May 13 10:01:14 UTC 2019


Hi Everyone,

Having an issue when running docker containers under a lxc container not 
being able to /proc/self/loginuid blocking ssh logins due to 
pam_loginuid.so.

My setup / environment is:

OS Version/build:
 > debian 9.9 (up to date) running kernel 4.9.168-1 with aufs-dkms.
 > lxc 2.0.7-2+deb9u2

App version:
Docker version 18.09.6, build 481bc77

Docker run from inside an lxc container running with the config:
 > lxc.include = /usr/share/lxc/config/debian.common.conf
 > lxc.include = /usr/share/lxc/config/nesting.conf

Steps to reproduce:
pam_loginuid.so (write to loginuid) works when testing from:
 > the host
 > inside docker run directly on the host
 > inside a lxc container

But won't allow writes when run from docker inside the lxc container.
For example when cron triggers a job for the user www-data (uid 33)
You end up seeing the following:
 > [pid  1693] openat(AT_FDCWD, "/proc/self/loginuid", 
O_RDWR|O_NOFOLLOW) = 6
 > [pid  1693] read(6, "0", 24)            = 1
 > [pid  1693] read(6, "", 23)             = 0
 > [pid  1693] lseek(6, 0, SEEK_SET)       = 0
 > [pid  1693] ftruncate(6, 0)             = 0
 > [pid  1693] write(6, "33", 2)           = -1 EPERM (Operation not 
permitted)

Where as you should be seeing:
 > [pid 30378] openat(AT_FDCWD, "/proc/self/loginuid", 
O_RDWR|O_NOFOLLOW) = 6
 > [pid 30378] read(6, "4294967295", 24)   = 10
 > [pid 30378] read(6, "", 14)             = 0
 > [pid 30378] lseek(6, 0, SEEK_SET)       = 0
 > [pid 30378] ftruncate(6, 0)             = 0
 > [pid 30378] write(6, "33", 2)           = 2

Have been able to reproduce the issue using both debian:9.9 and 
ubuntu:18.04 images.

Have tried many tweaks to lxc and apparmor to no avail (mostly stripping 
away at the restrictions, have also run aa_profile 
unconfined/lxc-container-default-with-mounting), mostly as I can't seem 
to reproduce the issue in a lxc container and no changes have had any 
effect on the docker containers either.

Any thoughts on ideas on where to go next ?

PS

This may not be an LXC issue, but I'm out of ideas on how to proceed.



More information about the lxc-users mailing list