User mounting take 2

Igor Pokrovsky ip at doom.homeunix.org
Sat Apr 22 14:40:57 UTC 2006


On Sat, Apr 15, 2006 at 01:05:45AM -0400, Joe Marcus Clarke wrote:
> Based on feedback I received on my initial diff, I took another crack at
> user mounting.  To address Robert's concerns, I drop the setuid
> permissions until needed.  Therefore, all permission checks are now done
> in the kernel.  The same is true for umount(8).
> 
> silby asked for wildcard support.  To handle that, I added glob support
> to both the fs_file and fs_spec fstab components (via fnmatch(3)), and
> also added a special %u pattern that can be used to represent the
> current user (i.e. the user running mount(8)).  This effectively allows
> the following in /etc/fstab:
> 
> //%u at server/homes    /home/%u/smb_home    smbfs    rw,noauto,user    0 0
> 
> Then, a user could just run, for example:
> 
> mount /home/marcus/smb_home
> 
> And their SMB home directory would get mounted (~/.nsmbrc is also
> respected).
> 
> Additionally, something like the following is also possible:
> 
> /dev/acd0    /home/*/cdrom    cd9660   ro,noauto,user    0 0
> 
> Same mount command works here:
> 
> mount /home/marcus/cdrom
> 
> Wildcards can also be mixed and matched.
> 
> Finally, in testing this, I found a problem with smbfs, msdosfs, and
> ntfs relating to the statfs(2) f_flags field.  smbfs always set this to
> 0, msdosfs didn't set this at all, and ntfs set this to all flags (not
> just those visible to statfs(2)).  By fixing this, umount(8) works
> properly on relative paths to user mount points for those three file
> systems.
> 
> http://www.marcuscom.com/downloads/usermount.diff
> 
> Comments?

Great feature! Hopefully it will hit the tree soon enough. Thanks!

-ip

-- 
A free agent is anything but.


More information about the freebsd-hackers mailing list