Trying the fsuid/fsgid workaround, I came across another oddity:

$ id -u
1000
$ id -g
1000
$ unshare -r -U -m /bin/bash
# mount -t tmpfs tmpfs /mnt
# chmod 555 /mnt
# ls -ldn /mnt
dr-xr-xr-x 2 0 0 40 Jan 26 14:15 /mnt
# echo $$
2354

In another terminal:

$ sudo nsenter -G 1000 -S 1000 -t 2354 -m
$ ls -ldn /mnt
dr-xr-xr-x 2 1000 1000 40 Jan 26 14:10 /mnt
$ touch /mnt/foo
touch: cannot touch '/mnt/foo': Permission denied

Even though I'm supposed to be root in the context of the user namespace, I 
can't create the file because I'm lacking the write permission on the mount 
directory.
In this case, setting the fsuid/fsgid is not sufficient, I have to join the 
user namespace if I want the permissions to be resolved correctly.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1659087

Title:
  open(2) returns EOVERFLOW within tmpfs+userns

Status in linux package in Ubuntu:
  Confirmed
Status in linux source package in Xenial:
  Confirmed

Bug description:
  On Ubuntu 4.4.0-59.80-generic 4.4.35, open(2) returns EOVERFLOW when
  creating a file in tmpfs with user namespace enabled.

  This issue wasn't present in 4.4.0-47 and has probably been introduced
  by https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1634964

  Step to reproduce:

  $ unshare -r -U -m /bin/bash
  # mount -t tmpfs tmpfs /mnt
  # echo $$
  2354

  In another terminal:

  $ sudo nsenter -t 2354 -m      
  # touch /mnt/foo
  touch: cannot touch '/mnt/foo': Value too large for defined data type

  Note that we are not joining the user namespace when creating the file
  but we would expect `touch' to succeed and create the file with an
  inode set to INVALID_UID/GID (i.e. nobody:nogroup) within the mount
  namespace.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1659087/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to