Public bug reported:

SRU Justification

Impact: shiftfs_setattr() creates an iattr struct with shifted ids for
the lower fs, but then mistakenly passes the original iattr struct when
changing the lower filesystem attributes. As a result, chown on a
shiftfs filesystem sets ownership using the untranslated user and group
ids.

Fix: Pass the struct containing shifted uids to notify_change().

Regression Potential: This is a simple and obvious fix, and it has been
tested to confirm it fixes the issue. Therefore the risk of regressions
is low.

Test Case: Within a lxd container using shiftfs, run:

# mkdir dir
# touch file
# ls -lh dir file
drwxr-xr-x 2 root root 4.0K Apr 11 13:05 dir
-rw-r--r-- 1 root root    0 Apr 11 13:05 file
# chown 500:500 dir file
# ls -lh dir file

Expected result:

drwxr-xr-x 2 500 500 4.0K Apr 11 13:05 dir
-rw-r--r-- 1 500 500    0 Apr 11 13:05 file

Result in 5.0.0-10.11:

drwxr-xr-x 2 1000500 1000500 4.0K Apr 11 12:42 dir       
-rw-r--r-- 1 1000500 1000500    0 Apr 11 12:42 file

** Affects: linux (Ubuntu)
     Importance: High
     Assignee: Seth Forshee (sforshee)
         Status: In Progress

** Summary changed:

- chown sets wrong owner in shiftfs
+ shiftfs: chown sets untranslated ids in lower fs

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1824350

Title:
  shiftfs: chown sets untranslated ids in lower fs

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to