我正在为嵌入式 Linux 系统编写软件,并使用 NFS 共享作为根目录。根文件系统位于/srv/nfs/rootfs
,并使用以下命令导出/etc/exports
:
/srv/nfs *(rw,no_root_squash,no_subtree_check,async,wdelay)
内容/srv/nfs/rootfs
需要root拥有,否则目标系统挂载会出现问题/dev
。但是,我需要能够/srv/nfs/rootfs
以普通用户身份修改文件,并且我不想添加sudo
到我的脚本中或在每个其他命令上运行 sudo。是否有某种方法可以配置 NFS 来伪造 root 权限/srv/nfs/rootfs
?我正在考虑尝试使用 fakeroot 运行 nfs,但这对我来说似乎不是最好的解决方案。
答案1
您可以使用 ACL 来/srv/nfs/rootfs
授予其他用户写入权限 - 请参阅man setfacl
/man getfacl
了解更多信息。如果您决定采用这种方式,那么使用默认 ACL 可能是一个好主意 - 这将确保为目录设置的 ACL 在文件/目录创建时传播。但有一个问题:新创建的文件将归创建它们的用户所有。因此,您可能希望chown root:
定期运行 NFS 导出或将某些内容挂接到 FAM(文件更改监视器,例如gamin
)。
附注:导出可写事物全世界( /srv/nfs *(rw,...
) 几乎从来都不是一个好主意,无论人们多么认为他/她的环境与宇宙的其他部分是隔离的。