19

Это может показаться глупым вопросом, но с большинством вещей Linux мне кажется, что многие тривиальные вещи не документированы.

В любом случае, я хочу просто смонтировать файловую систему ext4 в обычную точку монтирования в Ubuntu (/media/whereever), как доступную для записи для текущего вошедшего в систему пользователя, то есть меня.

Я не хочу ничего добавлять в /etc /fstab, я просто хочу сделать это сейчас, вручную. Мне нужны привилегии суперпользователя для монтирования устройства, но тогда только root может читать и писать это монтирование. Я пробовал различные варианты монтирования, добавил его в fstab, но безуспешно.

5 ответов5

13

В файловой системе ext4 (например, ext2, ext3 и в большинстве других исходных файловых систем Unix) действующие разрешения на доступ к файлам не зависят от того, кто монтировал файловую систему или от параметров монтирования, а только от метаданных, хранящихся в файловой системе.

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

Если у вас есть съемная файловая система, которая использует разные идентификаторы пользователей из вашей системы, вы можете использовать bindfs (в пакете Ubuntu с тем же именем), чтобы предоставить представление о любой файловой системе с разными владельцами или разрешениями. Съемная файловая система должна быть уже смонтирована, например, на /media/disk9 ; затем, если вы хотите стать владельцем всех файлов, вы можете запустить

mkdir ~/disk9
sudo bindfs -u $(id -u) -g $(id -g) /media/disk9 ~/disk9
8

Когда вы монтируете файловую систему ext4, она использует разрешения, встроенные в эту файловую систему. Если вы хотите переопределить их, используйте следующее:
1. Найдите UID пользователя, которого вы хотите смонтировать: id <username> и найдите UID = <идентификатор пользователя>(<имя пользователя>) GID = <groupid>(<имя группы>) 2. sudo mount -o nosuid,uid=<userid>,gid=<groupid> /dev/whatever /media/wherever

Это смонтирует файловую систему и пометит указанного пользователя как владельца всех файлов, а указанную группу как группу для всех файлов. nosuid - это мера безопасности, которая не позволяет пользователю вводить suid-программы и использовать их для получения root-доступа к системе (т. е. suid-версия bash в файловой системе). Добавление параметра noexec обеспечит дополнительную безопасность, но не позволит пользователю выполнять файлы в файловой системе.

Примечание. Если вы просто пытаетесь взаимодействовать с файловой системой самостоятельно, вам следует либо исправить разрешения на устройстве, либо взаимодействовать с ним как с правами root, если это просто временная вещь (т. Е. Восстановление поврежденной установки).

Если это для подключения USB или другого съемного внешнего диска, вы должны проверить систему pmount , которая может автоматизировать процесс для вас, или, по крайней мере, сделать это значительно проще (например, pmount <device> должно создать папки для вас, монтировать это как ваш пользователь, и позволяет вам размонтировать его как ваш пользователь)

2

Ты можешь использовать:

mount -o user /dev/devicename и опция user в вашем fstab.

1

Только что понял после прочтения последнего комментария на http://ubuntuforums.org/showthread.php?t=2142284, что все, что нужно сделать, это sudo chown -Rvf <user>:<group> <mountpoint>

Это все, что требуется ...

1

Если у вас нет настроения вручную редактировать файл /etc /fstab, я бы предложил попробовать PySDM для определения правил монтирования вашей файловой системы ext4 на регулярной основе. Его можно установить, установив пакет "pysdm" в Synaptic или выполнив поиск в "pysdm" в Центре программного обеспечения Ubuntu. После установки он доступен в Системе -> Администрирование -> Диспетчер устройств хранения.

PySDM в действии

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .