dan <[email protected]> writes:

> On 10/29/10 01:00, Chuck Swiger wrote:
>> Hi, Dan--
>>
>> On Oct 28, 2010, at 3:45 PM, dan wrote:
>>> 'mount_msdosfs -L en_US.UTF-8 /dev/da0 local/mnt/'
>>>
>>> executed by a non root-user prints out the following
>>>
>>> "mount_msdosfs: msdosfs_iconv: Operation not permitted"
>>>
>>> and then stops with error 71 on console.
>>>
>>> Later, the same command, executed by the same user, completes correctly if 
>>> some time before the root user has succesfully issued it and unmounted the 
>>> device.
>>>
>>> Any clues ? Things I am probably missing ? Does Anyone else notice this 
>>> (odd) behaviour (if it is odd) ?
>>
>> It's probably coming from /usr/src/sbin/mount_msdosfs/mount_msdosfs.c:
>>
>>            if (set_charset(&iov,&iovlen, cs_local, cs_dos) == -1)
>>              err(EX_OSERR, "msdosfs_iconv");
>>
>> ...since set_charset() tries to load the msdosfs_iconv&  libiconv kernel 
>> modules:
>>
>>      if (modfind("msdosfs_iconv")<  0)
>>          if (kldload("msdosfs_iconv")<  0 || modfind("msdosfs_iconv")<  0) {
>>              warnx("cannot find or load \"msdosfs_iconv\" kernel module");
>>              return (-1);
>>          }
>>
>> kldload() fails with EPERM if you are not root:
>>
>>       [EPERM]            You do not have access to read the file or link it
>>                          with the kernel.  You should be the root user to be
>>                          able to use the kld system calls.
>>
>> Once root has loaded these modules, you can invoke mount_msdosfs as a normal 
>> user because they are already available.  You can put "kldload 
>> msdosfs_iconv" into /etc/rc.local, or maybe tweak /boot/loader.conf to load 
>> these at boot if you prefer.
>>
>> Regards,
> Hello :-)
>
> Thank you for your research and prompt response. The module was
> available. I tried both: kldload in command line and adding it in
> loader.conf.
>
> Note. In case the module has not been been loaded,as a user, here, one
> gets 2 messages
> "mount_msdosfs: cannot find or load msdosfs_iconv kernel module"
> AND
> "mount_msdosfs: msdosfs_iconv: Operation not permitted"
>
> I wonder what Operation is not permitted as a user and what rights the
> user needs.

The missing operation is the loading of kernel modules, and there is no
way to do it without root privileges. Just do it at boot time (from
loader.conf), and you'll be fine.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[email protected]"

Reply via email to