
Я использую двойную загрузку 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 я был владельцем всех файлов/каталогов и каким-то образом мог установить все каталоги на 755, а файлы на 644, когда монтирование происходит при загрузке? Если да, то как это можно сделать?
решение1
Вы можете использовать fmask
и dmask
монтировать параметры * для изменения сопоставления разрешений в файловой системе ntfs.
rw-r--r--
Чтобы файлы (644) и каталоги rwxr-xr-x
(755) отображались, используйте fmask=0133,dmask=0022
. Вы можете объединить это с параметрами uid=
и gid=
для выбора владельца файла и группы, если вам нужен доступ на запись для вашего пользователя.
* fmask
и, dmask
похоже, работают также и для драйвера ядра (только для чтения), даже если они не документированы встраница руководства по монтированию. Они естьзадокументированопараметры для ntfs-3g.
решение2
Во-первых, это не то, как следует использовать /mnt. Это для выполнения административных задач в файловой системе, временно не при каждой загрузке системы.
Поскольку раздел Windows не участвует в работе системы Linux, имеет смысл смонтировать его в /media. Вы также можете рассмотреть возможность монтирования его в root / как /Windows, чтобы избежать путаницы с тем, что /media предназначен для съемных носителей.
Что касается разрешений, я бы использовал группу под названием Windows.
groupadd -g 1001 Windows
и предоставьте ему необходимые разрешения с помощью таких опций, как:
gid=1001,umask=022
Если вы хотите использовать cp и сохранить разрешениямежду отдельными файловыми системамииспользуйте cp с флагом -p или -a.
решение3
Используя параметры монтирования 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 не сможет получить доступ.