On Sat, 28 Apr 2012 14:42:35 +0400 Pavel Shilovsky <piastryyy@xxxxxxxxx> wrote: > Hi! > > Now CIFS client doesn't enforce uid and gid permission from the > process that create file by default (new files are created with mount > user permission) and it can be 'fixed' by setuids/setgids mount > option. Why this options should not be by default? I think it > contradict POSIX. > Welcome to the morass that we call "the cifs.ko permissions model". The reason we don't do that by default is because it doesn't work. What happens is that the client does a unix SetPathInfo call to try and chown the file, but in order to chown() a file on unix, you need superuser permissions. Once the session setup is done, the server daemon will usually setuid() itself to the user you're mounting as, and at that point you don't have permissions to chown anymore. What "setuids" also does is to "fake up" the ownership of the inode temporarily just after creation. That's just a hack though -- as soon as the attributes are fetched from the server again, that goes away, so results with that are inconsistent. Ha, and it looks like "setuids" is broken when you create files in cifs_lookup anyway! Maybe someone should fix that sometime... In any case, I maintain that the only *real* fix for all of these permissions problems is to both: 1) have users use the correct credentials when they talk to the server. Files get created with the correct ownership this way. 2) stop trying to enforce permissions on the client. It's racy and just gets in the way. Permissions can only be correctly enforced by the server. This is what the "multiuser" mount option does. If anything, I'd rather see a transition to that being the default. It's the only sane solution, IMO. That said, if you want to do some cleanup work on the permissions mount options mess model, I'll be happy to help review it... FWIW, I gave a talk at sambaxp a couple of years ago that covered a lot of the problems. I'd advise you to have a look at that before you spend too much time looking at this... http://sambaxp.org/index.php?id=38 ...see the talk on "Multi-session Linux CIFS". -- Jeff Layton <jlayton@xxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html