
Я работаю на Ubuntu 14.04, хотел создать еще одну учетную запись, помимо моей учетной записи администратора, для членов моей семьи, чтобы они не мешали мне работать. Проблема в том, что я не могу предоставить другой учетной записи доступ к разделу NTFS, содержащему данные, и я пробовал некоторые решения, упомянутые на форумах, но ничего не помогло. Тем не менее, пользователь, который входит в систему первым, когда машина перезагружается, кажется, захватывает этот раздел и запрещает другим пользователям получать к нему доступ даже после того, как он вышел из системы. Единственный трюк, который я нашел, чтобы сработал, эторазмонтироватьэтот раздел перед выходом текущего пользователя. Таким образом, следующий, кто собирается войти, будетустанавливатьраздел и получить к нему доступ.
Мой вопрос на самом деле заключается в том, работает ли таким образом доступ к разделам между разными пользователями машины, я имею в виду отключение используемого вами раздела, чтобы другой пользователь мог использовать его после вас, или я не смог должным образом предоставить доступ к этому разделу?
решение1
Самый простой и, вероятно, лучший способ добиться этого, если вам это нужно постоянно для всех пользователей и всегда, когда бы ни был включен компьютер, — это определить точку монтирования и правила монтирования раздела в /etc/fstab
. Сделав это, вы сможете автоматически предоставлять права доступа при монтировании раздела/диска.
Это гораздо более продвинутая практика, но если устройство с разделом NTFS в любом случае всегда подключено к компьютеру, это устраняет некоторые проблемы, с которыми вы сталкиваетесь, и эффективно автоматизирует предоставление контроля безопасности вокруг данных, а также позволяет нам фактически изменять контроль с течением времени, без необходимости вручную перемонтировать все с другими параметрами или пользователями каждый раз.
У меня есть еще несколько разделов в этом ответе.
- Первая — одна из моих
fstab
записей NTFS, которая относится к разделу Windows на моем компьютере с Ubuntu (а я единственный пользователь на этом компьютере). - Во втором разделе я беру свою
fstab
запись и объясняю варианты крепления. - В третьем разделе представлена предлагаемая мной процедура предоставления «безопасного» доступа к разделу, автоматического монтирования при загрузке и подходящего набора параметров монтирования для вашего случая (включая создание «группы пользователей», в которую вы добавляете пользователей, которым разрешен доступ к данным на смонтированном разделе. Эта группа пользователей действует как «контроль доступа», как и применяемые разрешения на конкретные файлы).
- Четвертый раздел даст вам потенциальную
/etc/fstab
линию поведения, если вы слушали меня в третьем разделе.
(1) Моя fstab
запись
К сожалению, на моем ноутбуке есть такой раздел NTFS, и мне нужно сделать его доступным для чтения мне и системным службам...
# Windows Partition - targetted for /media/win7
UUID=UUIDOFPARTITION /media/win7 ntfs-3g defaults,locale=en_US.utf8,windows_names,umask=7000,uid=1000,gid=1000,user 0 0
Что означает эта строка? Ну, первая строка с a #
впереди — это комментарий. Вторая строка — более важная часть, которая является фактической fstab
записью:
- Я идентифицирую раздел по UUID, который является строкой, идентифицирующей раздел. Вы можете получить UUID любого заданного раздела, выполнив
sudo blkid /dev/sda1
(заменив/dev/sda1
фактическим ID вашего раздела, так что если он находится на втором диске и это третий раздел в таблице разделов второго диска, то, возможно,/dev/sdb3
будет в этой команде. Я убираю кавычки вокругUUID=
строки в своейfstab
записи.) - Я монтирую его
/media/win7
при загрузке. - Это раздел NTFS, поэтому я перехожу к
fstab
опцииntfs-3g
, чтобы он знал, что это NTFS. - Я предоставляю ему параметры монтирования по умолчанию и некоторые другие (я объясню их позже).
- Пятое поле определяет, нужно ли делать дамп файловых систем, но поскольку это не обязательно, я передал ему
0
. - Шестое поле используется fsck для определения порядка проверок файловой системы во время загрузки, но поскольку мне это не нужно, я передаю
0
.
(2) Варианты крепления
Я рассматриваю довольно много вариантов крепления:
defaults
- передает параметры монтирования по умолчанию (rw
- чтение/запись,suid
- разрешает вступление в силу битов set-user-identifier или set-group-identifier,dev
- интерпретирует символы или блокирует специальные устройства в файловой системе,exec
- разрешает выполнение двоичных файлов,auto
- разрешает монтирование с-a
опциейmount
,nouser
- запрещает пользователю монтирование (переопределяется позже),async
- разрешает асинхронный ввод-вывод с файловой системой.)locale=en_US.utf8
- принудительно устанавливает локаль (США) на английском языке с кодировкой UTF8windows_names
- обеспечивает применение ограничений Windows на имена новых файлов в разделе.umask=7000
- По сути, обратный chmod. Определить, какие разрешения естьнетразрешено для файлов. По сути, я не запрещаю здесь ничего читать/писать/исполнять, поэтому все файлы в смонтированном расположении получают, по сути, привилегии чтения, записи и выполнения. Я не хочу, чтобы были установлены какие-либо специальные биты (setuid, setgid, sticky), поэтому мне приходится исключать их из первого октета — поскольку их числовая сумма равна «7», а я запрещаю эти разрешения, я ставлю начальную цифру 7.uid=1000
,gid=1000
- Смонтируйте раздел в эту папку с пользователем и группой, владеющими UID (идентификатор пользователя) и GID (идентификатор группы)1000
(это пользователь и группа моего пользователя,teward
, в системе Ubuntu).user
- Разрешить пользователю монтировать или размонтировать каталог. Переопределяетnouser
опцию вdefaults
.
(3) Решение для вас, безопасное
Мы, вероятно, могли бы упростить параметры монтирования, чтобы они были этими параметрами, хотя для вашего варианта использования, поскольку пользователи получают доступ к данным, а не к системе. Однако давайте сделаем это безопасным способом. Давайте создадим группу пользователей, которая даст здесь права на чтение/запись/выполнение.
addgroup ntfs-users
- Это создаст группу пользователей с именем «ntfs-users».
id -g ntfs-users
- Это даст нам числовой идентификатор группы для 'ntfs-users'. Это нам нужно для gid=
опции монтирования.
usermod -a -G ntfs-users USERNAME
- добавьте USERNAME
пользователя в ntfs-users
группу, которую мы только что создали.
Теперь мы можем использовать эту строку параметров монтирования:
rw,exec,async,auto,user,locale=en_US.utf8,windows_names,umask=7007,gid=654
Вот что делает эта строка, но не делает моя строка в fstab:
- Выбрать и использовать определенные параметры
defaults
- Позволяет
uid
пользователю-владельцу быть любым (обычно root при монтировании загрузки) - НЕ позволяет пользователям монтировать/размонтировать
- Устанавливает «групповое» владение точкой монтирования (и, следовательно, доступ к данным внутри) для Group ID
654
, гипотетический идентификатор группы,ntfs-users
который мы создали выше ntfs-users
Не разрешает доступ к данным всем остальным пользователям (т. е. не владельцу и никому в группе).
Если вы хотите владеть данными, то есть быть владельцем пользователя вместо root
, то добавьте обратно uid=
опцию. Используйте id -u YOURUSERNAME
и замените YOURUSERNAME
на свое имя пользователя, чтобы получить идентификатор пользователя ( uid
) для использования с этой опцией.
(4) Возможная /etc/fstab
запись для ВАШЕГО варианта использования, предполагая, что вы слушали меня в разделе 3
Получите UUID для раздела, тогда это может быть что-то вроде вашей /etc/fstab
строки:
UUID=0123456789ABCDEF /mnt ntfs-3g rw,exec,async,auto,user,locale=en_US.utf8,windows_names,umask=7007,gid=654 0 0
Замените значение UUID=
на UUID раздела, который выхотетьдля монтирования замените /mnt
на точку монтирования в вашей системе, замените значение gid=
в параметрах монтирования на идентификатор группы, которую ntfs-users
мы создали, и если вы хотите, чтобы владельцем был ваш пользователь вместо root
, то добавьте uid=
параметр, указав uid
для вашего пользователя, как я уже говорил ранее.