Вопрос Как использовать chmod в разделе NTFS (или FAT32)?


У меня есть сценарий, который мне нужно выполнить на разделе NTFS. Разрешение скрипта установлено равным 600.

Я попытался изменить разрешения, выполнив chmod 755 script.sh, который не сообщает об отказе или что-либо еще, - но он также не изменяет разрешения на файл:

$ stat script.sh

  File: `script.sh'
  Size: 297070      Blocks: 584        IO Block: 4096   regular file
Device: 811h/2065d  Inode: 35515       Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/  xxxxxx)   Gid: ( 1000/  xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700

$ chmod 755 script.sh
$ stat script.sh

  File: `script.sh'
  Size: 297070      Blocks: 584        IO Block: 4096   regular file
Device: 811h/2065d  Inode: 35515       Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/  xxxxxx)   Gid: ( 1000/  xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700

Как вы можете видеть, он остается неизменным.


119
2017-11-06 23:12


происхождения


Лучшее решение можно найти Вот Эти два вопроса должны быть связаны!


ответы:


Режим определяется настройками монтирования раздела (вы не можете изменить его с помощью chmod).

Для '755' в файлах и '777' в каталогах вы будете использовать что-то вроде

sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever

75
2017-11-06 23:35



Хорошо, это объяснит еще кое-что. - Nathan Osman
Что я должен поставить вместо /dev/whatever а также /mnt/whatever если мне нужно изменить разрешение раздела моего жесткого диска с именем /media/Prtn - Prakash Gautam
Устанавливает ли таким образом сохранение исходных настроек диска? То есть безопасно монтировать Windows-диск? - Jonathan
Я задал пользователю «andrew», который является моим основным пользователем. По ls для раздела ntfs показано, что все файлы / каталоги в нем являются собственными от root. - deathangel908
Реальное решение ntfs-3g.usermap, Смотри ниже... - Eduardo Cuomo


В отличие от большинства людей, NTFS является файловой системой, совместимой с POSIX¹, и можно использовать разрешения для NTFS,

Чтобы включить это, вам нужен «Файл сопоставления пользователя» или просто permissions (при отсутствии совместимости с Windows). Это отображает пользователей linux в вашей системе с идентификаторами пользователей, такими как NTFS / Windows, которые используют их внутри.

См. ntfs-3g manpage для некоторой информации и некоторых примеров. Если вам нужна дополнительная информация, см. ntfs-3g расширенная документация о правах собственности и разрешениях,

(Обратите внимание, что это не работает в файловых системах FAT.)

¹ Да, он также может хранить имена файлов, которые действительны в linux / unix, но не под Windows, поддерживает символические ссылки и hardlinks и т. Д.


78
2017-11-02 16:57



Вот хорошая документация. вкратце: sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFS а потом sudo mv UserMapping /media/MY-NTFS/.NTFS-3G/ - flying sheep
Таким образом, это позволит вам произвольно устанавливать разрешения, такие как chmod 655 /some/file на разделе NTFS, смонтированном в Linux? Я пытаюсь понять, как объединить мой домашний раздел с linux в c: \ Users. Будет ли использование usermap позволять мне сохранить все разрешения? Я планировал установить каталог c: \ Users в / home в linux. - trusktr
это должен быть принятый ответ. - petermolnar
Позвольте мне еще раз подчеркнуть ваше замечание: «когда не требуется совместимость с Windows». ссылка: askubuntu.com/questions/92863/... - Eliptical view
ntfs-3g manpage ссылка сломана - ctrl-alt-delor


Для разделов NTFS используйте permissions вариант в fstab.

Сначала отключите раздел ntfs.

Определите свой UUID раздела с помощью blkid

sudo blkid

Затем редактируйте /etc/fstab

# Graphical 
gksu gedit /etc/fstab

# Command line
sudo -e /etc/fstab

И добавьте или отредактируйте строку для раздела ntfs

# change the "UUID" to your partition UUID
UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,permissions 0 0

Сделайте точку монтирования (если необходимо)

sudo mkdir /media/windows

Теперь установите раздел

mount /media/windows

Варианты, которые я вам дал, auto, автоматически монтирует раздел при загрузке и users позволяет пользователям монтировать и umount.

Затем вы можете использовать chown и chmod на разделе ntfs.


34
2017-12-28 16:31



Как хранятся эти разрешения? В ADS? Другие метаданные? - hexafraction
Как насчет fat32? У меня есть карта micro sd, которая защищена от записи и я не могу получить доступ, отформатируйте ее. - Waqas
@RanaMuhammadWaqas - это старый вопрос, но вы также можете установить его с различными параметрами. Трудно понять, в чем ваша проблема, возможно, определить ваше оборудование и задать отдельный вопрос. - Panther
@ bodhi.zazen users подразумевает поехес, nosuid, а также nodev, нет? Как пользователи могут монтировать / umount с помощью noexec быть установленным? - Khurshid Alam
@EduardoCuomo - Опубликовать комментарий в ответе о том, что он не работает, вряд ли поможет вам. Какая файловая система? Предлагаю вам открыть вопрос. Вам нужно идентифицировать файловую систему и опубликовать запись fstab - Panther


В дополнение к настройке fmask и / или dmask в ответе htorque выше, если вы хотите выполнить скрипты на диске, мне также нужно установить опцию mount.

Таким образом, пример будет:

sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000,exec /dev/whatever /mnt/whatever

20
2017-12-14 08:26





Вы всегда можете явно вызывать интерпретатор сценариев, и в этом случае разрешения на выполнение не требуются. Если скрипт использует удар, как это можно проверить, просмотрев первую строку скрипта, просто запустите

bash script.sh

Обратите внимание, что сценарий вызывает другие скрипты или двоичные файлы в одном разделе, это не сработает. Также обратите внимание, что стратегия не работает с двоичными файлами, а не с текстовыми файлами сценариев, написанными в Bash Script, Perl, Python и т. П.


13
2017-12-14 10:00



+1 - Я никогда не думал об этом так. - Nathan Osman
Для выполнения двоичных файлов используйте /lib64/ld-linux-x86-64.so.2 ./program.bin для 64-битных программ и /lib/ld-linux.so.2 ./program.bin для 32-битных. - Lekensteyn


Согласно Право собственности и разрешения раздел документации NTFS-3G, мы можем использовать опции монтирования для управления файлом доступ а также создание, Комбинации очень сложны (см. Две таблицы там). Также я не читаю и не получаю все. Например, я не знаю, выбраны ли ACL POSIX во время компиляции или нет бинарного пакета NTFS-3G. Но лучшее, что я выбрал, - это использовать Отображение пользователейфайл в сочетании с некоторыми настройками монтирования, чтобы приблизиться к правдоподобному сопоставлению прав собственности на файлы и разрешений между Windows и Linux.


Предупреждение: Это только то, что лучше всего подходит для моего обмена файлами NTFS раздел данных (водить машину D: на Windows) между двумя загрузочными Windows 8 и Kubuntu 14.04. Инструкции записываются при тщательной ретроспекции, но не полностью проверены. Слишком утомительно и утомительно повторять всю процедуру. Поэтому следуйте этому на свой страх и риск. Но если вы это сделаете, расскажите о своем опыте. Если вы решите следовать инструкциям, пожалуйста, прочитайте его полностью, чтобы иметь полную картину до фактического действия. Удачи!


Хорошо, вот иди! Подробные инструкции состоят из трех частей. Часть 1 должна выполняться в Windows, а вторая часть - в Linux. Часть 3 предназначена для тестирования.

Часть 1

Отображение пользователей раздел документации NTFS-3G указывает две версии для настройки сопоставления пользователей между Windows и Linux, одной версией Windows и одной версией Linux. Мой опыт заключался в том, что версия Linux оказалась Мисс, Учетная запись Linux была не сопоставлен с моей учетной записью Windows, но некоторые неизвестный учетная запись появилась под SID, Результатом стал беспорядок, поскольку эта неизвестная учетная запись берет на себя все файлы моей учетной записи Windows. В этой ситуации, если у вас нет административной привилегии, чтобы вернуть ваше владение, файлы под вашей учетной записью Windows становятся недоступными. Но даже если вы все еще неправильное отображение. Это означает, что позже любые файлы, созданные вами в Linux, будут назначены этой неизвестной учетной записи в Windows, а те, которые в Windows, будут назначены для root в Linux (если я правильно помню). Таким образом, в Windows вам нужно снова взять на себя право собственности и на Linux изменить право собственности. Это не то, чего мы ожидаем. После нескольких безнадежных попыток решить проблему я сдался и перешел к версии Windows. Это сработало. Подробные инструкции, извлеченные из соответствующего раздела документации NTFS-3G, следуют:

  1. Загрузите usermap инструмент, извлеките его где-нибудь (в моем случае, диск C:), лучше за пределами раздела NTFS (в моем случае диск D:) для совместного использования.

  2. Откройте командную строку Windows. Изменить на извлеченный каталог tools (по умолчанию) usermap инструмент. Затем выполните следующую команду:

    C:\tools> mapuser > UserMapping
    

    Это создает шаблон и перенаправляет его в файл с именем UserMapping, Откройте файл с помощью текстового редактора, например «Блокнот», вы увидите следующие строки:

    # Generated by usermap for Windows, v 1.1.5
    # For Windows account "Account" in domain "Domain"
    # Replace "user" and "group" hereafter by matching Linux login
    user::SID
    :group:SID
    

    Предположительно, первый SID должен быть вашим SID пользователя, а второй - SID вашей группы. Вы можете проверить их соответственно командами whoami /user а также whoami /groups,

  3. После того, как вы убедитесь, что SID верны, следуя инструкциям в комментарии, то есть измените user в user::SID введите имя пользователя и group в :group:SID line для вашего основного имени группы в Linux. На Ubuntu они одинаковы. Кроме того, добавьте свое имя группы Linux также после первого двоеточия user::SIDлиния. Таким образом, строка должна выглядеть примерно так: user:group:SID, Кажется, что если не делать этого, файлы, созданные в Windows, будут назначены user:root на Linux.

  4. Сохраните файл. Переместите его в каталог с именем .NTFS-3G (создайте его, если еще не существует) на разделяемом NTFS разделе (в моем случае диск D:).

  5. Этот шаг предназначен для тестирования в части 3. На разделяемом разделе NTFS создайте новый каталог и новый файл.

Часть 2

Теперь загрузитесь в Linux. sudo отредактировать файл /etc/fstab, Добавьте или измените строку для разделяемого раздела NTFS на следующее:

UUID=...    /data    ntfs    defaults,umask=077,utf8    0    0

Важно установить umask (dmask а также fmask может также работать, но не проверяться). Выберите значение для umask вам нравится, хотя я выбрал 077, Кажется, что без этой настройки будут предоставлены полные разрешения others для вновь созданных файлов.

Сохраните файл. Теперь sudo mount или перемонтировать (sudo umount а потом sudo mount) общий раздел NTFS (в моем случае /data):

$ sudo mount /data

Часть 3

Теперь (все еще в Linux) cd к точке монтирования (в моем случае, /data), ls -l файлы там. Проверьте, соответствуют ли их права собственности и разрешения разрешениям, указанным в UserMapping файла и umask вы установили /etc/fstab (совпадение между разрешениями и umask требует некоторого дополнения, см. мужчина (1) umask Чтобы получить больше информации). Если они это сделают, поздравления, половина цели достигнута. В противном случае, бедняжка. Спросите Ubuntu или Windows.

Затем создайте новый каталог и новый файл. ls -l проверить их право собственности и разрешения. Владение должно быть вашим именем пользователя и основной группой, как обычно. Разрешения должны соответствовать umask, Теперь перезагрузите компьютер и загрузите его в Windows. Найдите в разделяемом разделе NTFS каталог и файл, который вы только что создали в Linux. Проверьте их свойства, чтобы узнать, назначены ли они для учетной записи Windows. Если они есть, поздравляю, вы все закончили. В противном случае, невезение. Спросите Windows или Ubuntu.

EOF


8
2017-08-22 22:35





Старый поток, я знаю, но по-прежнему актуальный и отсутствующий конкретный отзыв использования, составленный из разных предложений на других форумах / потоках и протестированных на Ubuntu GNOME 13.04, где мне нужен внешний диск для хранения библиотеки Steam ...

Например, если раздел NTFS находится на внешнем USB-накопителе, что означает, что раздел монтируется «на лету» при подключении, то вы можете использовать следующий метод для создания разделов udev mount ntfs с правами выполнения.

Откройте окно терминала и выполните:

$ sudo nano /etc/udev/rules.d/90-usb-disks.rules

Затем вставьте эту строку в то, что должно быть пустым / новым файлом (если нет, то выйдите из nano и переиздайте команду, но запустив имя файла с более высоким номером, например 91 -...):

ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs-3g"

Затем сохраните и закройте. Отключите диск, а затем выполните в терминале:

$ sudo service udev restart

Затем подключите диск и наслаждайтесь :)


5
2017-09-14 23:51



Отлично, это должен быть принятый ответ. - leftaroundabout


Все шаги:

  1. устанавливать ntfs-3g:

    sudo apt-get install -y ntfs-3g
    
  2. Размонтируйте NTFS раздел:

    sudo umount /mnt/windows
    
  3. использование ntfs-3g.usermap для создания UserMapping файл:

    sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFS
    

    или

    sudo ntfs-3g.usermap /dev/sdb1
    
  4. восходить NTFS раздел для добавления UserMapping файл:

    mount -a
    sudo mkdir /mnt/windows/.NTFS-3G
    sudo mv UserMapping /mnt/windows/.NTFS-3G/
    
  5. Обновите свою fstab файл:

    sudo vim /etc/fstab
    

    Обновить крепление линия:

    1. Резервное копирование текущей линии монтирования! Дублируйте строку и прокомментируйте ее, добавив # в начале.
    2. Изменить следующее: UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0
    3. К следующему: UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0 (Использование ntfs-3g и только default опция)

    Он должен выглядеть примерно так:

    #UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0 UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0

  6. Наконец, перемонтируйте, используя fstab:

    sudo umount /mnt/windows
    sudo mount -a
    

Сделайте это один раз для каждого NTFS раздел у вас есть!

ПРЕДУПРЕЖДЕНИЕ С ОС WINDOWS!

Я проверяю его с помощью Windows 7+ и разрешения влияют на ОС Windows! Я изменяю права доступа к моему разделу «Домашний каталог на Windows», и когда я снова использовал Windows, я видел, что пользователь был сломан!


2
2018-02-26 14:49