Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upFinder permissioning problem #5
Comments
This comment has been minimized.
This comment has been minimized.
|
I can't reproduce the various uid/gid values you are seeing. On Snow Leopard I get three calls to fuse_match_cred with On Lion I keep getting those As I understand it Snow Leopard falls back to the regular Finder process for moving/copying files after Locum is denied access to the FUSE volume (three times). Lion on the other hand does not seem to fall back on Finder but displays an error message instead. |
This comment has been minimized.
This comment has been minimized.
|
Scratch my previous post. Now I'm seeing those calls to fuse_match_cred with |
This comment has been minimized.
This comment has been minimized.
|
On Aug 18, 2011, at 14:45 , bfleischer wrote:
I was just thinking about how to reproduce this, as I didn't touch Lion for some weeks :-) Regards, |
This comment has been minimized.
This comment has been minimized.
|
I'm in favor of just checking EUID and EGID.
In short: Dropping the checks for RUID/RGID and SVGID should not create a new security thread. |
This comment has been minimized.
This comment has been minimized.
|
I 100% agree. And it's a very local change with a low impact of breaking something that worked before. |
This comment has been minimized.
This comment has been minimized.
|
Closed. Thanks Peter for tracking the issue down! |
…D/EGID of the FUSE deamon This fixes an issue with OS X Lion's Finder which relies on a helper process called Locum to perform some file system operations. Locum acts on behalf of the current user (EUID/EGID) but its RUID/RGID are set to root/wheel. MacFUSE/OSXFUSE used to allow file system requests only if EUID/EGID, RUID/EGID and SVGID matched the EUID/EGID of the FUSE daemon. Closes issue #5: Finder permissioning problem
…D/EGID of the FUSE deamon This fixes an issue with OS X Lion's Finder which relies on a helper process called Locum to perform some file system operations. Locum acts on behalf of the current user (EUID/EGID) but its RUID/RGID are set to root/wheel. MacFUSE/OSXFUSE used to allow file system requests only if EUID/EGID, RUID/EGID and SVGID matched the EUID/EGID of the FUSE daemon. Closes issue #5: Finder permissioning problem
Finder is using a root owned helper task "Locum" to perform some operations. With MacOS 10.7., this task is involved in Finders drag and drop operation. These operations fail on MacFUSE/osxfuse drives if they are not mounted with the "allow_other" option. Even though this could be considered as a Finder bug, I suggest changing the permission check in osdxfuse to address this issue and to give the users a flawless working version of osxfuse.
Form a technical perspective, the difference between 10.6. and 10.7. is visible in fuse_match_cred():
This is what we get on 10.7:
uid=502, ruid=0, groups[0]=20, gid=0, svgid=0
And this is what is expected (and is given by 10.6.):
uid=502, ruid=502, groups[0]=20, gid=20, svgid=20
One possible fix is to only check uid and groups in fuse_match_cred(), which seems to be sufficent. Or, as an alternative, only skip checking gid and svgid if they are 0.