[lxc-users] permissions question: netstat -anp does not show process for non owned processes

Serge E. Hallyn serge at hallyn.com
Fri May 27 18:52:33 UTC 2016


Quoting Eric W. Biederman (ebiederm at xmission.com):
> Serge Hallyn <serge.hallyn at ubuntu.com> writes:
> 
> > So running a netstat as ubuntu user in the container and stracing netstat, the
> > only eaccess I got was:
> >
> > 492   open("/proc/90/fd", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 EACCES (Permission denied)
> > 492   open("/proc/95/fd", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 EACCES (Permission denied)
> > 492   open("/proc/97/fd", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 EACCES (Permission denied)
> > 492   open("/proc/462/fd", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 EACCES (Permission denied)
> > 492   open("/proc/464/fd", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 EACCES (Permission denied)
> >
> >
> > those tasks are:
> > daemon      90     1  0 17:12 ?        00:00:00 /usr/sbin/atd -f
> > syslog      95     1  0 17:12 ?        00:00:00 /usr/sbin/rsyslogd -n
> > message+    97     1  0 17:12 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
> > root       462   452  0 17:13 ?        00:00:00 su - ubuntu
> > ubuntu     464   463  0 17:13 ?        00:00:00 (sd-pam)
> >
> > interesting.
> >
> > It doesn't appear to be yama - setting ptrace_scope -t 0 doesn't help.
> >
> > /proc/90/fd is owned by nobody:nogroup in the container, root:root on
> > the host.
> >
> > Looking at the code in fs/proc/base.c, it seems the code intends to
> > use the cred of the task to which the procpid entry belongs.  So it
> > really should be owned by daemon.
> >
> > (proc_tgid_lookup should be called, iiuc, to fill in the details about fd
> > under /proc/pid, it gets the task to which /proc/pid belongs, passes that
> > to proc_pident_instantiate, which passes it to proc_pid_make_inode, which
> > gets the task cred uid/gid and assigns them to the inode)
> >
> > I'm sure there's a good reason for this, but i'm failing to remember what
> > it is.
> 
> This is the dumpable restriction.  When a processes changes it's creds
> in the right way it stops being dumpable.  Currently dumpable is a very
> simple global thing, not a user namespace isolated thing.
> 
> We have talked about sorting this out but it has never been on the top
> of anyone's list to do.

Oh.  I guess my vague memories of talking about those somehow made me
think we'd handled it long ago.

> To make this work I think we need dumpable to change to an indication of
> which user namespace root we can allow to dump a file.

I'm surprised there haven't been more complaints about this :)

Wonder whether we'll get any volunteers to work on it...

thanks,
-serge


More information about the lxc-users mailing list