aeuii at posteo.de
2015-Jul-29 19:32 UTC
mount_msdosfs: msdosfs_iconv: Operation not permitted
Hello, it looks like an old issue [1,2,3], but it's bugging me. Generally, I'm not able to mount msdos file system as a regular user with extra charset options (-L) before the superuser. After the superuser mounts (and unmounts) the file system, regular users can do it to. Below is more info about my system and the detailed steps to reproduce the issue. Thanks for suggestions. Stefan [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=109024 [2] https://forums.freebsd.org/threads/mount_msdosfs-msdosfs_iconv-operation-not-permitted.36897/ [3] https://forums.freebsd.org/threads/mount_msdosfs-bug.2668/ ** my system % uname -a FreeBSD silver.local 10.1-RELEASE-p10 FreeBSD 10.1-RELEASE-p10 #0: Wed May 13 06:54:13 UTC 2015 root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 % locale LANG=en_GB.UTF-8 LC_CTYPE="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_ALL % cat /etc/fstab /dev/da1 /home/user/mnt/u0 msdosfs rw,noauto,noexec,-L=en_GB.UTF-8,-m=600,-M=700 0 0 /dev/da1s1 /home/user/mnt/u1 msdosfs rw,noauto,noexec,-L=en_GB.UTF-8,-m=600,-M=700 0 0 % sysctl vfs.usermount vfs.usermount: 1 % cat /etc/rc.conf | grep kiconv kiconv_preload="YES" kiconv_local_charset="UTF-8" kiconv_foreign_charset="UTF-16BE UTF-8" kiconv_fstypes="msdosfs" % pkg info|grep kiconv kiconvtool-0.97 Tool to preload kernel iconv charset tables ** initially loaded tables % kiconvtool -d UTF-8 -> UTF-16BE UTF-16BE -> UTF-8 ** try to mount as a regular user % mount /home/user/mnt/u1 mount_msdosfs: msdosfs_iconv: Operation not permitted ** mount fs as root # mount /home/user/mnt/u1 # umount /home/user/mnt/u1 ** tables after root mounted the fs % kiconvtool -d UTF-8 -> UTF-16BE UTF-16BE -> UTF-8 UTF-8 -> _wctype ** now a regular user can mount too % mount /home/user/mnt/u1
I think you should make sure the msdosfs_iconv module is already loaded. Mount_msdosfs loads this module for you if it has the rights. That is why it works if root has done that ones. Add this to rc.conf and reboot: kld_list="msdosfs_iconv" Regards, Ronald. On Wed, 29 Jul 2015 21:32:00 +0200, <aeuii at posteo.de> wrote:> Hello, > > it looks like an old issue [1,2,3], but it's bugging me. > > Generally, I'm not able to mount msdos file system as a regular user > with extra charset options (-L) before the superuser. After the > superuser mounts (and unmounts) the file system, regular users can do it > to. Below is more info about my system and the detailed steps to > reproduce the issue. > > Thanks for suggestions. > Stefan > > > [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=109024 > [2] > https://forums.freebsd.org/threads/mount_msdosfs-msdosfs_iconv-operation-not-permitted.36897/ > [3] https://forums.freebsd.org/threads/mount_msdosfs-bug.2668/ > > > > ** my system > > % uname -a > FreeBSD silver.local 10.1-RELEASE-p10 FreeBSD 10.1-RELEASE-p10 #0: Wed > May 13 06:54:13 UTC 2015 > root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 > > > % locale > LANG=en_GB.UTF-8 > LC_CTYPE="en_GB.UTF-8" > LC_COLLATE="en_GB.UTF-8" > LC_TIME="en_GB.UTF-8" > LC_NUMERIC="en_GB.UTF-8" > LC_MONETARY="en_GB.UTF-8" > LC_MESSAGES="en_GB.UTF-8" > LC_ALL> > > % cat /etc/fstab > /dev/da1 /home/user/mnt/u0 msdosfs > rw,noauto,noexec,-L=en_GB.UTF-8,-m=600,-M=700 0 0 > /dev/da1s1 /home/user/mnt/u1 msdosfs > rw,noauto,noexec,-L=en_GB.UTF-8,-m=600,-M=700 0 0 > > > % sysctl vfs.usermount > vfs.usermount: 1 > > > > % cat /etc/rc.conf | grep kiconv > kiconv_preload="YES" > kiconv_local_charset="UTF-8" > kiconv_foreign_charset="UTF-16BE UTF-8" > kiconv_fstypes="msdosfs" > > > % pkg info|grep kiconv > kiconvtool-0.97 Tool to preload kernel iconv charset > tables > > > > > ** initially loaded tables > > % kiconvtool -d > UTF-8 -> UTF-16BE > UTF-16BE -> UTF-8 > > > ** try to mount as a regular user > > % mount /home/user/mnt/u1 > mount_msdosfs: msdosfs_iconv: Operation not permitted > > > > ** mount fs as root > > # mount /home/user/mnt/u1 > # umount /home/user/mnt/u1 > > > ** tables after root mounted the fs > > % kiconvtool -d > UTF-8 -> UTF-16BE > UTF-16BE -> UTF-8 > UTF-8 -> _wctype > > > ** now a regular user can mount too > > % mount /home/user/mnt/u1 > _______________________________________________ > freebsd-stable at freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
Eugene Grosbein
2015-Jul-29 20:04 UTC
mount_msdosfs: msdosfs_iconv: Operation not permitted
On Wed, Jul 29, 2015 at 09:32:00PM +0200, aeuii at posteo.de wrote:> Generally, I'm not able to mount msdos file system as a regular user > with extra charset options (-L) before the superuser. After the > superuser mounts (and unmounts) the file system, regular users can do it > to.msdosfs charset support must be compiled into the kernel or loaded by mount_msdosfs(8) first time it is used. When mount_msdosfs command run with superuser rights, it loads needed code into the kernel successfully. Without superuser righs, it fails. Just load libiconv.ko and msdosfs_iconv.ko by means of /boot/loader.conf or /etc/rc.conf at boot time and you should be fine. Eugene Grosbein