Как вручную смонтировать файловую систему Linux для чтения / записи от имени обычного пользователя?

19

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

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

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

nicodemus13
источник
Есть ли причина, по которой вы не хотите монтировать его где-то в вашем домашнем каталоге?
Роберт С Чаччо

Ответы:

13

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

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

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

mkdir ~/disk9
sudo bindfs -u $(id -u) -g $(id -g) /media/disk9 ~/disk9
Жиль "ТАК - перестань быть злым"
источник
Благодарность! Это сработало для меня с ext3. Обратите внимание, что мне сначала нужно было смонтировать файловую систему ext3 в какую-то директорию монтирования, а затем смонтировать эту директорию с помощью bindfs в финальную директорию.
Илари Каджасте
8

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

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

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

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

Дарт Андроид
источник
1
Есть идеи, должно ли это работать и с EXT3? Я получаю EXT3-fs: Unrecognized mount option "uid=1000" or missing valueв dmesg, когда я пытаюсь это с ext3.
Илари Каясте
@ Илари: Это не будет работать ни с ext3, ни с ext4 в этом отношении. Большинство драйверов Linux для файловых систем Unix не имеют параметров сопоставления UID и GID.
Жиль "ТАК - перестань быть злым"
-1 Не работает
Илари Каясте
2

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

mount -o user /dev/devicenameи userвариант в вашем фстабе.

Андрей Регентов
источник
1

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

PySDM в действии

Зу
источник
1

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

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

САШИН ГАРГ
источник
2
Это разрушительная операция. Если вы сделаете это перед монтированием, это не повлияет на владение файлами на смонтированном диске; если вы сделаете это после монтирования, тогда все права будут перезаписаны. Если диск содержит установку Linux, изменение таких разрешений сделает его не загружаемым после того, как вы отключите его.
Warbo