Назад | Перейти на главную страницу

mount_afp на linux, права пользователя

Мне нужно смонтировать удаленную файловую систему в Linux, используя протокол afp. Коробка linux запускает старый Debian 4.

Я загрузил исходный код mount_afp, скомпилировал его и установил со всеми необходимыми пакетами.

Затем создал / etc / fuse с помощью следующей команды:

  mknod /dev/fuse c 10 229

(согласно инструкции Вот)

Я могу смонтировать удаленную файловую систему как root, выполнив:

 mount_afp afp://USER:PASSWD@REMOTE_SERVER/FOLDER /mnt/MOUNTPOINT/

но та же команда не работает при запуске от имени обычного пользователя (на локальном компьютере).

Прочитав кое-где, я создал группу fuse, и добавил моего обычного пользователя U к группе fuse:

[prompt] groups U
U fuse

Затем изменил группу / dev / fuse, которая теперь имеет следующие права:

 0 crwxrwx--- 1 root fuse 10, 229 Feb  8 15:33 /dev/fuse

Однако если пользователь U пытается смонтировать удаленную файловую систему, используя ту же команду, что и выше, U получает следующую ошибку:

Incorrect permissions on /dev/fuse, mode of device is 20770, uid/gid is 0/1007. But your effective uid/gid is 1004/1004

Но пользователь U с uid 1004 есть также gid 1007 (групповой предохранитель).

Я могу подумать, что проблема связана с реальным / эффективным / и т. Д. ID, но я не знаю, как действовать, и не нашел четких инструкций. Не могли бы вы мне помочь?


Есть еще одна проблема. Если я монтирую / mnt / MOUNTPOINT как root и запускаю ls -l /mnt, Я получил:

  drwxrwxrwx 15 root root 466 Feb  8 16:34 MONTPOINT

Если я сбегу ls -l /mnt как обычный пользователь U Я получил:

 ? ?????????? ? ? ? ?            ? MOUNTPOINT

на самом деле, когда я пытаюсь cd /mnt/MOUNTPOINT Я получил:

 $-> cd /mnt/MOUNTPOINT
-sh: cd: /mnt/MOUNTPOINT: Not a directory

Затем я отключаю / mnt / MOUNTPOINT как root и снова запускаю ls -l /mnt как обычный пользователь U Я получил:

 0 drwxr-xr-x 2 root root 6 Feb  8 15:32 MOUNTPOINT/

Прочитав ответ Фрэнка, я убил каждую оболочку / процесс, запущенный с привилегиями пользователя U. По-прежнему U не удается смонтировать удаленную файловую систему, но сообщение об ошибке изменилось. Теперь это: «Ошибка входа: ошибка аутентификации». Проблема не связана с удаленным логином / паролем, так как эта же команда отлично работает при запуске как root локальной машины.


Поскольку я не могу заставить mount_afp работать с обычными пользователями, я решил последовать совету mgorven. Итак, я запускаю команды:

 mount_afp -o allow_other afp://USER:PASSWD@REMOTE_SERVER/FOLDER /mnt/MOUNTPOINT/

и

 mount_afp -o user=U afp://USER:PASSWD@REMOTE_SERVER/FOLDER /mnt/MOUNTPOINT/

Монтирование выполнено успешно, но пользователь U не может получить доступ к точке монтирования. Если U выполняет ls -l в /mnt

U@LOCAL_HOST [/mnt]
$-> ls -l
ls: cannot access MOUNT_POINT: Permission denied
total 0
? ?????????? ? ? ? ?            ? MOUNT_POINT

Неужели так сложно заставить эту утилиту работать?

Успех моей однопользовательской настройки пришел в виде

  • создание группы fuse
  • добавление U к группе предохранителей
  • монтаж с
    mount_afp -o user=U,group=fuse afp://USER:PASSWD@REMOTE_SERVER/FOLDER /mnt/MOUNTPOINT
    • использование uid и guid у меня не работало
      Unknown user 1000
      Unknown group 108
      это правильные идентификаторы, полученные из идентификатора U

затем были установлены разрешения 777 для смонтированного каталога, и я наконец смог просматривать и играть.

Это не решает вопрос о OP, но, надеюсь, для некоторых этого достаточно.

У меня такая же проблема. Добавив имя пользователя в группу предохранителей, я вышел из системы и снова зашел (по ssh). Но у меня все еще была та же проблема. Потом перезагрузил бокс. Затем он работал нормально после создания точки монтирования, к которой у пользователя есть доступ. Итак, для меня выйдите из системы через ssh, а затем снова войдите в систему, чтобы не перезагрузить группы, я думаю, вам нужно перезагрузить или, возможно, выйти из всех других оболочек (я не уверен, были ли другие оболочки, в которые я входил) .

Вероятно, вы не выходили из системы и не входили снова после того, как добавили себя в fuse группа. Информация о группе кэшируется, поэтому вам нужно сделать это после изменения членства в группе. Бегать groups после этого, чтобы убедиться, что fuse указан.

По умолчанию монтирования FUSE разрешают доступ только тому пользователю, который их смонтировал. Если вы хотите разрешить другим пользователям доступ к ним, вам необходимо добавить allow_other вариант монтирования, поэтому попробуйте следующее:

mount_afp -o allow_other

Если это не сработает, вы можете установить владение монтированием своему пользователю:

mount_afp -o user=1004,group=1004