Обход разрешений по умолчанию при монтировании томов HFS+ в Linux

Обход разрешений по умолчанию при монтировании томов HFS+ в Linux

У меня есть MacBook Pro с двойной загрузкой со Snow Leopard и Kubuntu 11.10, и я хочучитать(неважно, напишите) мой домашний каталог Mac, когда я работаю в Kubuntu.

Я могу смонтировать его без проблем, но мой пользователь на Kubuntu не может видеть файлы на HFS+, принадлежащие пользователю Mac, из-за разных UID (502 на Mac, 1000 на Kubuntu).

Просмотр документации ядра по HFS+Я прочитал, что:

When mounting an HFSPlus filesystem, the following options are accepted:
[CUT]
    uid=n, gid=n
        Specifies the user/group that owns all files on the filesystem
        that have uninitialized permissions structures.
        Default:  user/group id of the mounting process.

Поэтому я попробовал использовать следующие варианты:

$ sudo mount -t hfsplus -o uid=1000,gid=1000 /dev/sda2 /mnt/Mac

Но они, кажется, ничего не делают: я все еще вижу те же разрешения, когда смотрю вокруг с помощью ls -l. Я могу что-то упустить, есть подсказка?

Я знаю, что могу изменить свой идентификатор пользователя в Ubuntu, чтобы он соответствовал идентификатору в Mac Os X, но я бы предпочел этого избежать, если это возможно.

решение1

bindfsвот ответ. Он возьмет уже смонтированную файловую систему и предоставит ее вид с любым uid, который вам нужен:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo

Редактировать:

Также, читаядокЯ понял, что mapвариант (1.10 и более поздние версии) может подойти лучше:

sudo bindfs --map=502/1000 /media/diskFoo ~/myUIDdiskFoo

решение2

В конце концов, я создал пользователя Linux с тем же UID, что и у пользователя Mac OS X, но он не может просматривать все каталоги в моем домашнем каталоге на томе Mac hfs+, поскольку многие файлы принадлежали пользователю Mac «unknown», UID 99 (см.http://googlemac.blogspot.com/2007/03/user-99-unknown.html).

Похоже, они сделали это, чтобы вы могли монтировать и читать ваш том, когда вы подключаете его к другому компьютеру. Когда обычный пользователь смотрит на эти файлы, принадлежащие UID 99, он видит их так, как будто он их владелец. Довольно странно. Только root видит их такими, какие они есть.

Поэтому я перезагрузился в Mac Os X, вошел в систему под другим пользователем с правами администратора и использовал chown -R 502:20 /Users/gerlos/*, чтобы изменить владельца каждого файла в моем доме. Теперь я могу читать все без проблем.

Замечания:

  • Стандартный графический инструмент Kubuntu для создания новых пользователей в Kubuntu 11.10 не может создавать пользователей с UID менее 1000. Вместо этого используйте adduser в терминале.
  • Вы можете узнать свой UID пользователя с помощью команды «id» на терминале.
  • на mac os x, вам нужно быть root, чтобы увидеть настоящего владельца файлов. Поэтому ожидайте разных результатов, если вы введете "ls -n /Users/gerlos" и "sudo ls -n /Users/gerlos".

решение3

На самом деле я хотел сделать что-то подобное, когда столкнулся с этим вопросом. Насколько я понимаю, глядя на ваш первый пост, запрошенная опция монтирования спрашивает, какой uid пользователя следует использовать вместо значения по умолчанию вашей системы Linux (т. е. uid 1000). Так что вместо этого вы должны использовать 502, который является ожидаемым владельцем файловой системы, которую вы пытаетесь смонтировать.

Я проверил это в своей ситуации, и это отлично сработало с uid 99 для файловой системы, которая будет общей для моих систем. С этим мне не нужно будет менять uid. Так что спасибо за то, что поделились. Это может быть уже не так важно для вас, но может помочь кому-то другому. Ура

Связанный контент