我在使用通过 NFS 挂载其根文件系统的嵌入式 Linux 设备时遇到问题。
但由于不同的原因,嵌入式设备是作为 root 运行的单用户设备(后来它甚至没有网络连接)。
在电脑上,我希望我的普通用户拥有所有文件,这样我就可以修改它们,而不必一直是root(或使用sudo)。
但现在,一旦客户端在 nfs 挂载上创建新文件,用户 ID 就会设置为 root,并且我在服务器上遇到问题。
所以我的问题是是否可以在 /etc/export 中设置一个标志来解决这个问题?这样当客户端创建文件时,服务器上的uid不是root而是用户的uid(可能是500或1000)。
这是我当前在服务器上的 /etc/export
/opt/eldk/armVFP *(rw,sync,no_root_squash)
答案1
这最简单的解决这个问题的方法是将服务器上共享的权限设置为全局可写(0777)。在客户端(您的嵌入式设备)上将用户的 umask 设置为 0000。同时删除该no_root_squash
选项。你要root_squash
在。这会将 root 转变为nobody
用户。然后,您可以以服务器系统上的任何用户身份读取和写入在共享上创建的任何文件。
警告
我所描述的是一种极其不安全的配置,因此我强烈建议不要在封闭的专用网络以外的任何地方执行此操作。