Мне нужно смонтировать удаленную файловую систему в 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
Unknown user 1000
Unknown group 108
затем были установлены разрешения 777 для смонтированного каталога, и я наконец смог просматривать и играть.
Это не решает вопрос о OP, но, надеюсь, для некоторых этого достаточно.
У меня такая же проблема. Добавив имя пользователя в группу предохранителей, я вышел из системы и снова зашел (по ssh). Но у меня все еще была та же проблема. Потом перезагрузил бокс. Затем он работал нормально после создания точки монтирования, к которой у пользователя есть доступ. Итак, для меня выйдите из системы через ssh, а затем снова войдите в систему, чтобы не перезагрузить группы, я думаю, вам нужно перезагрузить или, возможно, выйти из всех других оболочек (я не уверен, были ли другие оболочки, в которые я входил) .
Вероятно, вы не выходили из системы и не входили снова после того, как добавили себя в fuse
группа. Информация о группе кэшируется, поэтому вам нужно сделать это после изменения членства в группе. Бегать groups
после этого, чтобы убедиться, что fuse
указан.
По умолчанию монтирования FUSE разрешают доступ только тому пользователю, который их смонтировал. Если вы хотите разрешить другим пользователям доступ к ним, вам необходимо добавить allow_other
вариант монтирования, поэтому попробуйте следующее:
mount_afp -o allow_other
Если это не сработает, вы можете установить владение монтированием своему пользователю:
mount_afp -o user=1004,group=1004