我需要使用 afp 协议在 Linux 机器上安装远程文件系统。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
但是 uid 为 1004 的用户U
也具有 gid 1007
(组融合)。
我可能认为问题与真实/有效/等 ID 有关,但我不知道如何继续,也找不到任何明确的说明。你能帮帮我吗?
还有另一个问题。如果我以 root 身份挂载 /mnt/MOUNTPOINT 并运行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
然后我以 root 身份卸载 /mnt/MOUNTPOINT 并ls -l /mnt
以普通用户身份再次运行U
,我得到:
0 drwxr-xr-x 2 root root 6 Feb 8 15:32 MOUNTPOINT/
在阅读了 Frank 的回答后,我终止了所有以 user 权限运行的 shell/进程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
让这个实用程序运行起来真的很难吗?
答案1
我的单用户设置成功了
- 创建群组
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
这些是从 id U 检索到的正确 uid
- 使用 uid 和 guid 对我来说不起作用
然后将挂载目录的权限设置为 777,最后我就可以浏览和播放了。
这并不能解决 OP 的问题,但希望对某些人来说足以确认。
答案2
您可能在将自己添加到群组后没有注销并重新登录fuse
。群组信息已缓存,因此您需要在更改群组成员身份后执行此操作。groups
执行此操作后运行以验证是否fuse
已列出。
默认情况下,FUSE 挂载仅允许挂载它们的用户访问。如果您想允许其他用户访问它们,则需要添加allow_other
挂载选项,因此请尝试以下操作:
mount_afp -o allow_other
如果这不起作用,您可以将坐骑的所有权设置为您自己的用户:
mount_afp -o user=1004,group=1004
答案3
我遇到了同样的问题。将用户名添加到 fuse 组后,我注销并重新登录(通过 ssh)。但我仍然遇到同样的问题。然后我重新启动了盒子。在创建用户可以访问的挂载点后,它工作正常。所以对我来说,通过 ssh 注销然后重新登录并没有强制重新加载组,我猜你必须重新启动或可能从所有其他 shell 中注销(我不确定我是否登录了其他 shell)。