Comment 14 for bug 227808

Revision history for this message
Apreche (apreche) wrote :

I just tested the bug, and the same exact problem persists in 8.10.

I think really this is one of those bugs where you have two competing projects/philosophies against each other. It's not a problem of coding the solution, it's a problem of resolving conflict.

When something is mounted in .gvfs, the virtual file system applies a umask of 077. This makes sense. If I use SSH to mount a virtual file system from another machine, I can't allow anyone else on the local machine to have any permissions on the remote files.

If a user chmods a file in the virtual file system, the chmod is passed onto the real file system. That makes sense. I might virtually mount a directory on a web server I'm working on, and I might want to change permissions on some files so the web server allows access to them. I don't want the chmod to allow other users on the client end to go poking around my web server. I want it to change permissions on the other side.

Some text editors, and I'm sure other programs as well, like to set a files permissions when they save. I'm sure they have a valid reason for this, even though I personally can't think of any. In order to set the permissions, the text editor first needs to know what the original permissions are. When they ask the virtual file system for the permissions, they are told the post-umask permissions. This is correct, otherwise the text editor might thing a file is read-write when it is read-only or some other such situation. When the editor saves the file, it also sets the permissions. The virtual file system doesn't modify its own permissions, it passes the chmod down the line to the real file system it represents. As a result, the local permissions overwrite the remote permissions, and the umask is pushed through.

You have two separate things which behave correctly and appropriately when considered individually, but act very badly when working in combination. It's a problem that affects all virtual file systems. You want to give users the functionality to modify remote permissions, but you want the local security of the umask. I think there definitely needs to be a philosophical discussion before we're going to see a resolution.