URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 79476
[ Назад ]

Исходное сообщение
"Монтирование виндовых шар из FreeBSD"

Отправлено gleb , 26-Мрт-08 15:53 
Hi, All!

как-то уже затрагивалась на форуме тема сабжа
решение так и не было найдено :(

OS FFreeBSD 7.0
В ядре прописано:
options         NETSMB                                                          
options         LIBMCHAIN                                                      
options         SMBFS                                                          
options         LIBICONV
проскакивали рекомендации удалить эти записи из конфигурации ядра и подгружать соответствующие модули - результат тот же

~/.nsmbrc:
[default]
workgroup=WORKGROUP
[HOST]
charsets=koi8-r:cp866
addr=host
[BSERV:USER]
password=$$1234567890


# sysctl vfs.usermount=1
$ mount_smbfs //user@host/share $HOME/mnt
выдает:
mount_smbfs: can not setup kernel iconv table (koi8-r:tolower): syserr = Operation not permitted

Помогает:
# chmod 4555 /usr/sbin/mount_smbfs
(the setuid bit)
но полагаю это не решение проблемы

как решить проблему?
заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Монтирование виндовых шар из FreeBSD"
Отправлено AMDmi3 , 27-Мрт-08 00:27 
>как решить проблему?
>заранее спасибо.

Для перекодировки имен файлов на iso9660/msfosfs/smbfs используется kernel iconv (kiconv). Проблема в том, что для каждой кодировки нужна своя таблица; загрузить сразу все таблицы - лсишком много памяти, позволить юзеру загружать таблицы нельзя по этой же причине (возможен Denial of service).

Правильное решение, по идее, - подгрузить нужные таблицы при загрузке системы. Можно поискать утилку для этого (думаю, их написано не одна и не две, даже у меня своя была, но сейчас найти не могу).

Альтернативные решения:
- один раз смонтировать систему с нужной кодировкой от рута - таблица загрузится и далее будет работать mount от юзера. Можно для этого сделать маленький образ с msdosfs и монтиовать его через md с соответствующими параметрами кодировок. Геморрой, да.
- монтировать эту smbfs от рута/через sudo/из fstab
- монтировать через amd - тоже вполне прямое решение


"Монтирование виндовых шар из FreeBSD"
Отправлено gleb , 27-Мрт-08 13:54 
>Правильное решение, по идее, - подгрузить нужные таблицы при загрузке системы. Можно
>поискать утилку для этого (думаю, их написано не одна и не
>две, даже у меня своя была, но сейчас найти не могу).

а как подгрузить, по какому принципу?


>Альтернативные решения:
>- один раз смонтировать систему с нужной кодировкой от рута - таблица
>загрузится и далее будет работать mount от юзера. Можно для этого
>сделать маленький образ с msdosfs и монтиовать его через md с
>соответствующими параметрами кодировок. Геморрой, да.

почему-то не срабатывает :(

>- монтировать эту smbfs от рута/через sudo/из fstab

fstab не понимает "~/mnt" в точке монтирования
моннировать надо пользователю (из скрипта)
к тому же не пользователь один

>- монтировать через amd - тоже вполне прямое решение

ссылку на доку ПЛИЗ


"Монтирование виндовых шар из FreeBSD"
Отправлено AMDmi3 , 27-Мрт-08 14:16 
>>Правильное решение, по идее, - подгрузить нужные таблицы при загрузке системы. Можно
>>поискать утилку для этого (думаю, их написано не одна и не
>>две, даже у меня своя была, но сейчас найти не могу).
>а как подгрузить, по какому принципу?

Описанно в man kiconv.
Думаю, как-то так:

---
#include <stdio.h>
#include <sys/types.h>
#include <sys/iconv.h>

int main() {
        return kiconv_add_xlat16_cspairs("cp866", "koi8-r");
}
---
gcc -o kiconvutil kiconvutil.c -lkiconv
---
# kiconvutil; echo $?
0
---

>>Альтернативные решения:
>>- один раз смонтировать систему с нужной кодировкой от рута - таблица
>>загрузится и далее будет работать mount от юзера. Можно для этого
>>сделать маленький образ с msdosfs и монтиовать его через md с
>>соответствующими параметрами кодировок. Геморрой, да.
>почему-то не срабатывает :(

Всегда работало.

>>- монтировать эту smbfs от рута/через sudo/из fstab
>fstab не понимает "~/mnt" в точке монтирования
>моннировать надо пользователю (из скрипта)
>к тому же не пользователь один

Имелось в виду это:
//aaa@bbb/ccc /home/user1/mnt
//aaa@bbb/ccc /home/user2/mnt
//aaa@bbb/ccc /home/user3/mnt
//aaa@bbb/ccc /home/user4/mnt
...

>>- монтировать через amd - тоже вполне прямое решение
>ссылку на доку ПЛИЗ

http://www.fsl.cs.sunysb.edu/docs/am-utils/am-utils.html


"Монтирование виндовых шар из FreeBSD"
Отправлено Сергей , 27-Мрт-08 09:08 
>[оверквотинг удален]
>решение так и не было найдено :(
>
>~/.nsmbrc:
>[default]
>workgroup=WORKGROUP
>[HOST]
>charsets=koi8-r:cp866
>addr=host
>[BSERV:USER]
>password=$$1234567890

  А у меня вообще charsets выключен, а монтирую с флагами -d 0777 и -f 0777