Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Монтирование NTFS раздела на /home  (Прочитано 7113 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн intelfx

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
  • так часто бывает...
    • Просмотр профиля
Монтирование NTFS раздела на /home
« : 21 Июля 2010, 11:23:03 »
Захотелось тут мне совместить папки пользователя (они же домашние каталоги) на Linux и винде. Ставить левые драйвера на винду для доступа к ext3 не захотелось, поэтому решил подмонтировать NTFS-раздел под Linux.
Тут же столкнулся с проблемой прав доступа - ntfs-3g не понимает виндовых прав доступа к файлам, поэтому они все будут с owner=root:root и заданным umask'ом, а домашней директорией каждого пользователя должен владеть (на уровне FS) он сам.
При настройке будем считать, что NTFS-раздел с папками пользователей автоматически монтируется на /mnt/win_docs и пользователи в винде называются так же, как и в Linux (при этом желательно установить права доступа к этой папке как 700 - чтобы никто, кроме root, не имел доступа к ней).

Решение же заключается в том, чтобы использовать bindfs для перемонтирования (биндинга) каждой папки пользователя с NTFS-раздела на /home со сменой прав доступа на нужные и pam-mount для автоматического выполнения данной операции при входе пользователя в систему.
Для начала разберёмся с настройкой bindfs. Bindfs - файловая система типа FUSE. Её использование похоже на использование mount --bind, с одним только отличием - она позволяет изменять отображаемые права доступа файлов в конечной точке монтирования - то есть как раз то, что нам и нужно.
Bindfs есть в репозиториях Ubuntu, поэтому установка (если только ваше ядро поддерживает FUSE) сводится к
# apt-get install bindfs

Монтировать её можно двумя способами:
mount.fuse -t bindfs <исходная папка> <целевая папка> -o <параметры>или
mount -t fuse bindfs#<исходная папка> <целевая папка> -o <параметры>
Параметрами же задаются подставные права доступа, они у нас будут такими (для всех файлов):
владелец/группа - как у пользователя, чей этот домашний каталог;
разрешения - 755 (владельцу - все права, остальным - чтение/исполнение);
новым файлам будут присваиваться тот же владелец и права доступа;
операция chmod будет игнорироваться;
поддержка расширенных атрибутов (xattrs) будет отключена.
Этим условиям соответствует строка параметров
perms=755,user=<user>,group=<group>,create-as-user,chmod-ignore,xattr-none

Теперь настала очередь pam-mount. Его основная задача - примонтировать папку на NTFS-разделе на домашний каталог каждого пользователя динамически, при входе оного в систему.
Установка этого модуля PAM также проста, если сама система PAM (Pluggable Authentication Modules) уже установлена (Ubuntu использует эту систему по умолчанию, поэтому никаких проблем возникнуть не должно). Он есть в репозиториях Ubuntu и устанавливается командой
# apt-get install libpam-mount
После установки он автоматически добавляется в список используемых модулей PAM.

Конфигурационный файл модуля (XML) находится в /etc/security/pam_mount.conf.xml .
В нём надо добавить только одну строчку, задающую параметры монтирования файловой системы bindfs.
Вот она:
<volume noroot="0" fstype="fuse" path="bindfs#/mnt/win_docs/%(USER)" mountpoint="/home/%(USER)" options="perms=755,user=%(USER),group=%(GROUP),create-as-user,chmod-deny,xattr-none"> <not> <uid>0-999</uid> </not> </volume>

Здесь тип файловой системы закодирован в исходном пути (как во втором варианте вызова mount), конструкции %(USER) и %(GROUP) будут преобразованы в имя и группу входящего в систему пользователя.
Параметр noroot="0" указывает на то, что файловую систему нужно монтировать с правами root (обычно FUSE монтируется с правами пользователя, но здесь bindfs требует прав root из-за параметра "create-as-user" и чтобы получить доступ к папке /mnt/win_docs).
Конструкция внутри тега volume (<not> ... </not>) задаёт минимальный UID, при котором будет выполнена данная операция, равный 1000 (всё, что меньше - системные пользователи). Если у вас UID'ы распределены по-другому, нужно подправить эту запись (man pam_mount.conf за синтаксисом).
Эту запись желательно расположить после всех остальных, но перед финальным закрывающим тегом (предпоследней строкой, не считая комментариев).

После этого желательно перезагрузиться, чтобы сбросить счётчик входов в систему (pam_mount монтирует при первом входе, и размонтирует при последнем выходе данного пользователя).

Надеюсь, что это будет кому-нибудь полезно.
« Последнее редактирование: 15 Августа 2010, 13:56:41 от intelfx »

Оффлайн Pashaaa

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Монтирование NTFS раздела на /home
« Ответ #1 : 09 Декабря 2010, 00:19:02 »
Добрый вечер.
Скажите , а вы не пробовали монтировать ЦЕЛЫЙ раздел NTFS(предварительно создав папки"Документы","Музыка" и т.д.)  на /home/user name.
Дело в том, что у меня после монтирования пропадает звук.Точнее звук есть ,но регулировать его  нельзя(а при нажатии на иконку со звуком система выдаёт:"ожидание ответа звуковой подсистемы").
Для монтирования добавляю строчку в файл fstab:
UUID=358AC0C877AA7479   /home/vip    ntfs   relatime   0   2


Может подскажите что-нибудь?

Заранее ,спасибо!

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.