Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Dec 2006 19:07:59 +0200
From:      Andriy Gapon <avg@icyb.net.ua>
To:        freebsd-stable@freebsd.org
Subject:   Re: Mounting smbfs as non-root
Message-ID:  <4586CAEF.2000404@icyb.net.ua>
In-Reply-To: <1166012592.00653256.1166001601@10.7.7.3>
References:  <1166012592.00653256.1166001601@10.7.7.3>

next in thread | previous in thread | raw e-mail | index | archive | help
on 13/12/2006 11:11 Peter Jeremy said the following:
> I am trying to mount a SMB filesystem as an ordinary user (because
> I don't want to give root to this particular person).  Whilst
> running mount_smbfs as root works, attempting the same command
> as non-root consistently returns
> mount_smbfs: can not setup kernel iconv table (ISO8859-1:tolower): syserr = Operation not permitted
> 
> I've looked at a ktrace and the source code and the offending code is
> sysctlbyname("kern.iconv.add", ...)
> 
> I've looked through iconv_sysctl_add() and can't see any way for the
> code to return EPERM.
> 
> My reading of all the code also suggests that once the relevant iconv
> tables are loaded, then iconv_sysctl_add() should return EEXIST
> (via iconv_register_cspair()).  But even if the relevant translation
> table is loaded (by mounting a SMB filesystem as root), I still get
> the above error when trying to use mount_smbfs as a user.  I've even
> written some code to let me look at the kern.iconv MIB tree which
> confirms the above but doesn't get any me any closer to a solution.
> 
> This is the same on two 6.2-PRERELEASE systems and I get the same
> behaviour on an oldish 7-current system.  Does anyone have any
> suggestions on what is going wrong?
> 


Not entirely the same issue, but quite similar and rather annoying.

I have the following in loader.conf:
msdosfs_iconv_load="YES"
msdosfs itself is built into kernel.

kldstat confirms that the above modules are indeed loaded.

I also have vfs.usermount=1

I can successfully mount any DOS fs as a regular user as long as I don't
specify any mount options that require iconv conversions.
Otherwise I get EPERM:
$ mount_msdosfs -L en_US.UTF-8 /dev/da0s1 /mnt/flash/
mount_msdosfs: msdosfs_iconv: Operation not permitted

I can see from ktrace that the error comes from some __sysctl call.

It is sufficient to do at least one mount as root and then
subsequent user mounts are successful.

-- 
Andriy Gapon




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4586CAEF.2000404>