我有两台机器A
和B
我的本地网络(都是 Ubuntu 21.10)。
在机器上A
,我有一个仅用于数据(音乐、照片、电影、文档等)的驱动器安装在/media/data
. 机器上的每个用户(有 2 个)都可以读/写驱动器内容。
我需要能够在我的机器上做同样的事情B
(只有一个用户),这意味着读/写访问。
在这种情况下,实现这一目标的适当方法是什么?考虑到:
- 我需要机器中的用户
B
不要给机器用户创建权限问题A
- 我需要机器
B
上的程序具有正确的权限来读取/写入驱动器
我之前尝试过的设置并没有完全满足这两个需求。这就是我指定这个的原因。尽管可能因为我的设置不正确而无法满足它们...我不知道。在过去的一年里,我一直在学习和尝试。
所以这是我已经尝试过的:
通过Samba本地网络共享共享 --> 访问文件(例如播放音乐)很慢
sshfs:
- 我从未设法将其正确设置为在启动时自动挂载
- 我有权限问题。例如:当使用甜菜(管理我的音乐库)时,甜菜会创建文件夹/文件,这些文件夹/文件
B
由列为#user 1001
. 这个用户在系统中是未知的,但它是uid
我在机器上使用 ssh 的用户A
(它与我uid
在机器上的不同B
)并且我没有修改任何内容(所有权、删除文件等)的权限。我没有设法解决这个问题,所以 sshfs 解决方案不适合我使用。
NFS : 我今天刚试了一下,没能通过
mount.nfs: access denied by server while mounting (null)
错误
所以现在我决定停止尝试,因为我有点迷茫并且真的不知道我应该实际尝试什么:更好地理解 sshfs 来解决权限问题?使 NFS 工作?...并决定寻求帮助 :)
到目前为止,使用 sshfs 对我来说是最好的解决方案(访问文件既快速又稳定),但是如果不解决这些权限问题,它还不够好,而且如果我能在启动时正确设置自动挂载,那就更好了......
谢谢你的帮助 !
编辑
关于 NFS,这就是我所做的:
- 安装
nfs-kernel-server
在机器上A
- 安装
nfs-common
在机器上B
- 在机器中添加了行
/media/data 00.00.00.00(rw,sync,no_subtree_check)
(带有机器的IP地址B
)/etc/exportfs
A
- 跑了
sudo exportfs -a
- 我检查了修改
sudo exportfs
- 我在防火墙中允许 nfs (ufw)
B
我检查了我可以看到机器的导出showmount
,我可以看到它- 当尝试使用
sudo mount 00.00.00.00:/media/data ~/data
(带有机器的 IP 地址A
)安装文件夹时,它返回mount.nfs: access denied by server while mounting (null)
所以我选择了 NFS 方法,并且感谢@PonJar 在上面的评论中发布的 Arch Linux wiki 链接,它可以很好地工作:https ://wiki.archlinux.org/title/NFS 主要区别是你需要
nfs-kernel-server
包服务器机器和nfs-common
客户端机器。我所做的与我在问题中关于 NFS 的编辑中公开的不同之处主要在于:
/srv/nfs/data
/srv/nfs/data
文件夹绑定到我要导出的文件夹/media/data
否则,我检查了导出是否正确,并且我可以从我的客户端计算机上看到它(注意:当防火墙在服务器计算机上处于活动状态时,showmount 不起作用,因此在设置之前检查)并且我在ufw防火墙。
然后我成功安装了驱动器
sudo mount -t nfs -v 192.168.1.108:/srv/nfs/data ~/data
/etc/fstab
最后,我在:中添加了以下行,192.168.1.108:/srv/nfs/data /home/myuser/data nfs defaults,_netdev 0 0
该文件夹现在在启动时自动挂载。这种方法似乎解决了我有时遇到的权限问题。