Смонтировать раздел NTFS при запуске с владельцем без полномочий root в качестве владельца

28

В настоящее время я монтирую раздел NTFS при запуске, используя следующую строку в / etc / fstab:

/dev/sda3        /media/data           ntfs      nls=iso8859-1,umask=000

Для моей установки Ubuntu 11.10 все выглядит так, как будто все файлы и папки принадлежат root- и поскольку NTFS в действительности не поддерживает ту же систему управления правами, я не могу изменить ее после завершения монтирования. Независимо от того, что я делаю, в ls -lлюбом месте раздела NTFS будут перечислены все файлы и папки как принадлежащие root:root.

Тем не менее, это вызывает некоторые проблемы для меня. В частности, некоторые приложения, работающие под моей учетной записью (называемые tomas), жалуются на права доступа. Кроме того, всякий раз, когда я пытаюсь скопировать ( cp) или переместить ( mv) файлы из одного из моих разделов ext3 в раздел NTFS, я получаю сообщения об ошибках:

mv: preserving times for `[path to new file]`: Operation not permitted

или, аналогично

mv: preserving permissions for ...

Поможет ли монтирование раздела от моего имени вместо root? Если да, то как мне это сделать в fstab?


Обновить:

Теперь я изменил параметры в соответствии с предложениями и пришел к этому:

nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas

ls -lтеперь показывает все файлы, принадлежащие мне, а не пользователю root, и кажется, что некоторые проблемы, которые у меня были раньше, решены. Однако не все из них.

Когда я запускаю Eclipse, я получаю сообщение об ошибке, что файл, связанный с android-sdk, не может быть запущен: В доступе отказано. ls -lговорит мне следующее о файле:

-rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb*

Это выглядит так, как я хочу. Но если я пытаюсь запустить его ( ./adbв терминале), я также получаю сообщения об отказе в разрешении. Но если я запускаю его sudo, он работает (я полагаю - по крайней мере, он не выдает мне сообщение об ошибке, но вообще не дает никакого вывода, что, я думаю, не должно ...)

Почему указанный выше файл с разрешениями на выполнение для всех по- прежнему не может быть выполнен кем-либо еще, кроме root? Как мне изменить способ монтирования файловой системы таким, какой он есть?


Обновление 2:

Хорошо, теперь я пошел немного дальше. Путем монтажа с этими опциями

nls=iso8859-1,permissions,users,auto

Я получил все разрешения, установленные так, как я от них ожидаю, chownи chmodфактически изменил настройки файлов (по крайней мере, в соответствии с ls -l) = D

НО моя система все еще ведет себя странным образом. adbПрава доступа к файлу сценария указаны выше, но ни я, ни Eclipse не можем запустить его без ошибок «Отказано в доступе». Но, насколько я вижу, в файле установлены все необходимые флаги ( o=rwxдолжно быть достаточно, верно?). Почему это не работает?


Обновление 3

Хорошо, у меня все работает на стороне Ubuntu, со следующими опциями:

nls=iso8859-1,permissions,users,auto,exec

Однако, когда я пытаюсь получить доступ к файлам на разделе из Windows, настройки безопасности все перепутались. Во всех файлах (из тех немногих, которые я изучал) новая учетная запись Account Unknown(long GUID)была добавлена ​​в список пользователей и имеет полные права. Права большинства других пользователей уменьшены, поэтому у меня нет прав на то, что я ожидаю. Примечательно, что «Все» больше не имеют права на «Переместить папку / выполнить».

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

Томас Ашан
источник
2
От монтажа (8) : users Allow every user to mount and unmount the filesystem. This option implies the options noexec, ... unless overridden by subsequent options, as in the option line users,exec,dev,suid). Так что добавьте execк вашим опциям, и я считаю, что проблема с отказом в разрешении для выполнения должна быть решена.
Benwh
Вы когда-нибудь решали эту проблему после обновления 3? ... Однажды я попытался сделать резервную копию моей системы Linux с помощью rsync на дополнительном накопителе ntfs, но после долгих поисков пришел к выводу, что никогда не смогу поместить полный массив информации о файловой системе linux на нтфс фс. (Ну, может быть, я мог бы подойти ближе, как вы сделали выше, но в конце Linux не очень хорошо отображается на NTFS.)
Эллиптическое представление
@Elipticalview: Это давно, и у меня больше нет такого компьютера. Вы пробовали принятый ответ?
Томас Ашан

Ответы:

25

В столбце параметров добавьте permissionsи auto(и, возможно, userили users)

nls=iso8859-1,permissions,users,auto
  • permissions: (Опция NTFS-3G) Установите стандартные разрешения для создаваемых файлов и используйте стандартное управление доступом.
  • auto: Будет установлен при загрузке и с mount -a
  • user: Разрешить обычному пользователю монтировать файловую систему
  • users: Разрешить каждому пользователю монтировать и размонтировать файловую систему

Затем измените владельца файловой системы:

sudo chown -R thomas:thomas /media/data 

Моя линия в /etc/fstab

/dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0

Смонтировать и перечислить разрешения

sudo mount /media/ntfs
Using default user mapping

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs

Смена владельца и список новых разрешений

bodhi@ufbt:~$ sudo chown bodhi:bodhi /media/ntfs

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs

По умолчанию ntfs-3g монтирует раздел noexec, nosuid и nodev.

  • noexec: Не разрешать прямое выполнение любых двоичных файлов в смонтированной файловой системе.
  • nosuid: Не допускайте вступления в силу битов set-user-identifier или set-group-identifier.
  • nodev: Не интерпретируйте символ и не блокируйте специальные устройства в файловой системе.

Чтобы переопределить это и разрешить выполнение файлов, используйте exec

/dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0

Теперь мы получаем

bodhi@ufbt:~$ ls -l /media/ntfs

-rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file

bodhi@ufbt:~$ /media/ntfs/file
It works
пантера
источник
Хм ... после добавления этого в fstab (сделав столбец hte options следующим образом nls=iso8859-1,permissions,users,umask=000:) и перезагрузки, теперь я могу перемещать и копировать файлы без сообщений об ошибках. Все файлы по-прежнему отображаются как принадлежащие root:rootдаже после sudo chown -R tomas:tomas /media/data. Пока что это не проблема, но из любопытства: почему?
Томас Ашан
Я думаю из-за вашейumask=000
Пантера
Нет, umask=000эквивалентно chmod 777- umask определяет все флаги, которые вы не хотите устанавливать в файлах. Я согласен, что это нелогично, но это все здесь: ubuntuforums.org/showpost.php?p=9092899&postcount=4
Томас Ашан
Я обновил свой вопрос дополнительной информацией о том, что я пробовал, и о результатах.
Томас Ашан
1
Хм ... Мне придется снять эту отметку на
некоторое
2

Используйте параметры uidи gid(или используйте функцию сопоставления пользователей) файла mount.ntfs (8)

перекати-поле
источник
1
Другими словами, добавьте uid = whoever в строку fstab
psusi
uidи gidработают, но разрешения теперь поддерживаются в ntfs-3g, и эти опции переопределяются permissions. См .: b.andre.pagesperso-orange.fr/permissions.html
Panther
Я обновил свой вопрос с дальнейшей информацией о том, что я пробовал, и о результатах, которые я получил. Пожалуйста, взгляните =)
Томас Ашан
Можете ли вы обновить запись в fstab и удалить uid, gid и umask, просто nls=iso8859-1,permissions,usersразмонтировать и заново смонтировать раздел.
Пантера
@ bodhi.zazen: Тогда мы вернулись к исходной точке. Файлы отображаются как принадлежащие, root:rootи Eclipse жалуется на разрешения.
Томас Ашан
2

Мой теперь работает отлично, когда я изменяю линию fstab на

UUID=761C84B31C846FC3 /media/d        ntfs    defaults,umask=022,uid=1000 0       0
e01
источник
1

Как насчет использования udisks? Он может легко монтировать разделы NTFS с вашим пользователем в качестве владельца.

Пример (введите его в командной строке):

/usr/bin/udisks --mount /dev/sda3

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

Ссылка: AutomaticsMountPartitions

amfcosta
источник