Лучшая практика для монтирования раздела Windows

13

Я использую двойную загрузку Windows и Debian на моем ноутбуке. В основном я использую Linux, но время от времени мне нужно получать доступ к моим файлам в разделе Windows. Мой раздел Windows монтируется следующим образом при запуске.

>cat /etc/fstab |grep Win7
LABEL=Windows7_OS /mnt/Win7 auto nosuid,nodev,nofail,x-gvfs-show 0 0

В основном каждый файл в разделе Windows принадлежит root: root и имеет разрешение 777. Затем всякий раз, когда я помещаю файл в мой рабочий (Linux) раздел, в моем разделе находится файл 777, принадлежащий мне (в то время как cp в терминале выдаст файл 755, но, если это будет сделано через gnome, сохранит файл с разрешением 777) ,

Это лучшая практика для монтирования раздела? Или я должен смонтировать его так, чтобы вместо root я был владельцем всех файлов / dirs и каким-то образом мог установить все dirs на 755 и файлы на 644, когда монтирование происходит при загрузке? Если так, как это можно сделать?

albertma789
источник
2
незначительный лакомый кусочек (уууу ...):grep Win7 /etc/fstab
Оливье Дюлак

Ответы:

17

Вы можете использовать fmaskи dmaskсмонтировать опции * для изменения сопоставления разрешений в файловой системе ntfs.

Для отображения файлов rw-r--r--(644) и каталогов rwxr-xr-x(755) используйте fmask=0133,dmask=0022. Вы можете совместить это с uid=и gid=опциями для выбора владельца файла и группы , если требуется доступ на запись для вашего пользователя.

* fmaskи, dmaskпохоже, работает также для драйвера ядра (только для чтения), даже если они не описаны на странице руководства по монтированию . Это документированные опции для ntfs-3g.

sebasth
источник
Мой umask по умолчанию уже 0022. Но когда я делаю файл, используя терминал из Win7 в мой дом, файл все еще 777.
albertma789
2
Fmask и dmask в ответе - варианты монтирования . Когда вы измените их в fstab и перемонтируете файловую систему, файлы / каталоги в вашей файловой системе Windows появятся с разрешениями 644/755 вместо 777/777.
Себастьян
5
LABEL=Windows7_OS /media/Win7 auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=Windows,uid=1000,gid=1000,fmask=0133,dmask=0022 0 0работает как шарм. Именно то, что мне было нужно!
albertma789
Можно ли установить такие значения по умолчанию для определенных файловых систем (FAT32 / NTFS), а не для конкретных дисков? Было бы неплохо иметь это в наличии при использовании флэш-накопителей и других съемных носителей.
JAB
7

Прежде всего, это не то, как вы должны использовать / mnt. То есть для выполнения административных задач в файловой системе временно не каждая система загружается.

Поскольку раздел Windows не участвует в работе системы Linux, имеет смысл смонтировать его в / media. Вы также можете захотеть смонтировать его под root / as / Windows, чтобы избежать путаницы с носителями для съемных носителей.

Что касается разрешений, я бы использовал группу под названием windows

groupadd -g 1001 Windows

и дайте ему необходимые разрешения с такими параметрами:

gid=1001,umask=022

Если вы хотите использовать cp и поддерживать разрешения между отдельными файловыми системами, используйте cp с флагом -p или -a.

jdwolf
источник
Мой umask по умолчанию уже 0022. Но когда я делаю файл, используя терминал из Win7 к себе домой, файл все равно 777. Вместо этого рекомендуется смонтировать в / media!
albertma789
При копировании файлов между файловыми системами используются разрешения по умолчанию для этой файловой системы, если вы не сохраните их. Обратитесь к моему обновленному ответу.
jdwolf
Хотя я согласен /mnt, не является оптимальным для точки монтирования, /mediaно для съемных носителей (например, DVD-дисков и USB-накопителей). Я не уверен, что есть хороший ответ, где должно произойти монтирование
StrongBad
@StrongBad Стандарт иерархии файловой системы не так уж стандартен, особенно для каталогов со старых Unix. Например, FHS 2.3 не отражает текущую практику / запуска. Посмотрите на FHS 3.0 refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s11.html, который также указывает на то, что для этого не следует использовать / mnt, но его рациональность намного понятнее, чем «технически Windows не является съемным носителем». Стоит также отметить что нет ничего плохого в монтировании вашего собственного каталога в / root.
jdwolf
4

Используя параметры монтирования uid, gid, fmaskи dmaskвы можете сделать весь NTFS файловой системы доступным для вашей обычной учетной записи пользователя и / или одной группы. Но это все или ничего: с точки зрения файловой системы NTFS это все равно, что постоянно работать в качестве полного Администратора в Windows, или все делать как root в Linux. ntfs-3gДрайвер NTFS файловой системы может сделать лучше , чем это.

Если вы используете ntfs-3g, вы можете использовать ntfsusermapкоманду для создания файла сопоставления пользователей для вашей файловой системы NTFS. Эта команда поможет вам определить имена пользователей Windows и соответствующие им идентификаторы безопасности Windows и связать их с идентификаторами пользователей и групп Linux.

Таким образом, вы можете связать SID вашей учетной записи Windows с вашим UID Linux. Таким образом, после того, как вы смонтируете файловую систему NTFS с установленным файлом сопоставления пользователей <NTFS filesystem root>/.NTFS-3G/UserMapping, вы можете использовать свою обычную учетную запись пользователя Linux для доступа к файловой системе NTFS точно так же, как ваша учетная запись пользователя Windows сможет получить к ней доступ. Для вещей, которые вам потребуются права администратора в Windows, вам все равно нужен root в Linux.

Таким образом, вы получите удобный доступ к своим файлам в разделе Windows, но при этом все равно будете защищены от \Windowsошибок в каталоге с помощью опечатки, если только вы не работаете от имени пользователя root.

Вы также можете использовать параметр windows_namesмонтирования на разделах NTFS, чтобы предотвратить случайное создание файлов с именами, к которым Windows не может получить доступ.

Телком
источник