Монтирование файловой системы ext3 с правами пользователя

12

Я пытаюсь смонтировать файловую систему ext3 из другой установки Linux, чтобы у пользователя, а не пользователя root, был полный доступ ко всем файлам. (Мне действительно нужен пользователь, чтобы иметь доступ к этим файлам, потому что я хотел бы использовать их с другого компьютера через sshfs, а sshfs предоставит только права доступа пользователя к файлам.)

Если я запускаю mount /dev/sda1 /mnt/whateverвсе файлы доступны только root.

Я также попробовал, mount -o nosuid,uid=1000,gid=1000 /dev/sda1 /mnt/whateverкак указано в вопросе SuperUser, обсуждающем ext4, но он завершился ошибкой, и dmesgсообщает:

EXT3-fs: Unrecognized mount option "uid=1000" or missing value

Как я могу смонтировать файловую систему?

Илари Каясте
источник
1
Я бы сказал, что ответ Жиля на вопрос Superuser, который вы упомянули, является правильным. В самом деле, то люди страница монтирования (8) не список uid=...и gid=...вариантов ни один из ext2 / 3/4 файловых систем.
Риккардо Мурри
@Riccardo Спасибо, это было правильное решение! Сначала регулярно монтируйте ext в некоторый каталог, затем монтируйте этот каталог bindfs -u $(id -u) -g $(id -g)в конечный пункт назначения. Напишите это как ответ, может быть?
Илари Каджасте
1
Поскольку ответ - Жиль, и он также очень активен на этом форуме, я оставляю за ним право опубликовать его здесь и получить заслуженный кредит.
Риккардо Мурри

Ответы:

19

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

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

mkdir /home/$user/sda1
bindfs -u $user -g $group /mnt/sda1 /home/$user/sda1
Жиль "ТАК - перестань быть злым"
источник
1
Спасибо тебе и от меня! С небольшой настройкой это также работает для таких устройств, как, например, SATA DVD-ROM с горячим подключением (с которым у меня были проблемы). ОДНАКО, устройство всегда будет установлен 000по какой - то причине (г ---------) , поэтому вы должны указать -p 700в bindfsстроке , чтобы получить доступ к файлам на DVD через dolphin/ и nautilusт.д., например.
syntaxerror
Было бы неплохо, если bindfsбы можно было принимать словари для перевода любого набора UID и GID ...
Алексей