我这里有一个有点奇怪的设置,我有 Android 作为客户端,它的内核不支持 NFSv4,服务器端的 /etc/exports 文件也没有 NFSv4 样式条目。
我正在尝试构建一些工具链(我的手机上有 gcc-4.8-armhf 和所有这些工具,以及设置了存储库的 apt-get,以便我可以在需要时安装东西)以及遵循 LFS,但我不能由于无法设置文件所有权等原因,构建了一些程序,例如 perl。
我的 /etc/exports (服务器):
/media/usb3/Android 192.168.1.209(rw,sync,subtree_check,no_root_squash)
Als -l
看起来像这样(客户端):
drwxr-xr-x 6 4294967294 4294967294 4096 Jun 21 17:23 toolchains
-rw-r--r-- 1 4294967294 4294967294 0 Jun 25 18:51 rootu
Asudo chown root:root
看起来像这样(客户端)(rootu 只是一个测试文件):
sudo chown root:root rootu
chown: changing ownership of `rootu': Invalid argument
我的安装命令(客户端):
sudo mount -t nfs 192.168.1.210:/media/usb3/Android /home/edge-case/Android-Lab/ -o tcp
我已经浏览了手册页并阅读了一些教程和其他问题,但他们都说只设置 no_root_squash ,我从一开始就这样做了,但这不起作用。
我目前没有 LDAP 或 Kerberos,或任何复杂的身份验证设置,这一切都超出了我目前的技能(和 0 工资)水平。我在家,所以我拥有完全的 root 访问权限和所有东西的所有权,除了可能是战争驾驶员之外,不太担心安全性,但我确实有一个很好的无线密码,所以我真的不需要锡箔帽子;P
我曾经有这个工作,但似乎 Debian 已经做了一些改变,事情不再那么顺利了。 Windows 代理是否搞砸了 Linux 源代码!?焦/克
这到底是什么?我在哪里可以找到一种简单的方法来挂载我拥有的文件的目录,或者如果我选择的话,挂载 root(通过 sudo chown),而不是客户端或服务器上不存在的一些奇怪的“4294967294”用户?
答案1
我讨厌在问完问题后立即弄清楚这一点,
我用了
/system/xbin/busybox mount -t nfs /path/to/share /path/to/mountpoint -o tcp,nolock
它可以工作,现在我的文件在客户端上属于我的用户“10001:10001”,但它是一个混乱的解决方案,因为如果我使用 Cyanogenmodbusybox mount
而不使用该nolock
选项,它会被拒绝权限,但如果我使用 Debian 的安装和该nolock
选项它仍然有奇怪的 UID:GID 所有权。
所以目前唯一的工作方法是使用 Cyanogenmodbusybox mount
的nolock
.nolock
与 Debian 一起使用mount
不会解决 id 问题,如果不nolock
与 Cyangenmod 一起使用,我会被拒绝。
我想正确的解决方案是检查每个命令的源代码,并mount
使用类似于 Cyan 的补丁重建 Debian 的命令,并找出为什么我需要nolock
它,我认为我不应该需要它。也许这是链接器/库问题?我不知道,超出我的自动取款机。