From owner-freebsd-stable@FreeBSD.ORG Mon Dec 18 17:30:49 2006 Return-Path: X-Original-To: freebsd-stable@freebsd.org Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F135516A5A1 for ; Mon, 18 Dec 2006 17:30:49 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0C07D43CA2 for ; Mon, 18 Dec 2006 17:27:38 +0000 (GMT) (envelope-from avg@icyb.net.ua) Received: from [212.40.38.87] (oddity-e.topspin.kiev.ua [212.40.38.87]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id TAA03231 for ; Mon, 18 Dec 2006 19:07:59 +0200 (EET) (envelope-from avg@icyb.net.ua) Message-ID: <4586CAEF.2000404@icyb.net.ua> Date: Mon, 18 Dec 2006 19:07:59 +0200 From: Andriy Gapon User-Agent: Thunderbird 1.5.0.8 (X11/20061113) MIME-Version: 1.0 To: freebsd-stable@freebsd.org References: <1166012592.00653256.1166001601@10.7.7.3> In-Reply-To: <1166012592.00653256.1166001601@10.7.7.3> Content-Type: text/plain; charset=KOI8-U Content-Transfer-Encoding: 7bit Subject: Re: Mounting smbfs as non-root X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Dec 2006 17:30:50 -0000 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