> On Monday September 24, miklos@szeredi.hu wrote:Or third ;) Yes, I've always argued, that permission checking needs to be pushed to the filesystem, since the VFS can't always do a good enough job. My usual example is sshfs, where it is just impossible to know the uid/gid mapping between the server and the client. So any permission checking based on uid or gid on the client simply can't work, the only sane thing to do is to delegate the permission checking to the server. Which works beautifully, since the server is an unprivileged process, and everything automatically works out. All the fuse kernel module has to do is to basically define ->permission() to always return success, and let the userspace filesystem do the permission checking. This works fine, except a couple of things, like checking the sticky bit on a directory, and mknod(). Because we need MNT_NODEV on _all_ mounts belonging to a superblock, not just the one on which mknod was performed on, which would get really ugly. This way it's simple: if the MS_MKNOD_NOCAP is specified for the super block, that implies, that devices can't be opened. See above. I imagine this flag to usually be set by the filesystem itself. But it could be a separate mount option. I guess it could make sense in some non-fuse cases as well. Yes, that's one of the options, but it would be a huge change, with nasty security implications for past and future filesystems. I think there's consensus on the need for a new mount API. Not just because the 32 bits for the flags will be exhausted sooner or later anyway, but the current API is limited in lots of other ways. Miklos -
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Linus Torvalds | Re: init's children list is long and slows reaping children. |
| Kohei KaiGai | [PATCH 0/3] exporting capability name/code pairs (final#2) |
git: | |
| Gerrit Renker | [PATCH 33/37] dccp: Initialisation framework for feature negotiation |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Arjan van de Ven | Re: [GIT]: Networking |
| Mark Ryden | Re: Linux Wireless Mini-Summit -- Ottawa -- July 22, 2008 |
