狄云的所思所想

产品、技术想到哪写到哪

解决群晖NFS远程挂载经常出现的权限问题

2024-04-04

此文章虽然大部分内容由chatgpt生成,但是真的能解决问题,值得记录!

在群晖中开启NFS远程挂载目录时,客户端使用经常有以下报错
*chown: changing ownership of '/config': Operation not permitted
Permissions could not be set. This is probably because your volume mounts are remote or read-only. *

解决方案

在群晖NAS上设置NFS共享时,默认情况下,出于安全考虑,群晖采用root_squash选项,这意味着通过NFS挂载群晖共享的远程root用户的操作将被映射为匿名用户(通常是nobody用户),从而限制root用户的权限,避免可能的安全风险。

如果你确实需要为特定的NFS共享禁用root_squash,即使用no_root_squash选项(允许远程root用户以root权限操作群晖上的文件),群晖的DSM操作系统并没有在图形用户界面中直接提供这个选项。但是,你可以通过修改NFS共享的配置文件来实现。

以下是大致步骤:

  1. 登录群晖NAS
    通过SSH客户端使用管理员账号登录到你的群晖NAS。你可能需要在DSM的控制面板中启用SSH服务。

  2. 编辑NFS共享的配置文件
    NFS的配置文件通常位于/etc/exports。你需要使用文本编辑器打开此文件,如使用vinano。如果你没有nano,可以使用vi

    sudo vim /etc/exports
    
  3. 修改配置
    /etc/exports文件中找到你想要修改的共享路径的行,添加或修改为no_root_squash选项。例如:

    /volume1/your_nfs_share 192.168.1.0/24(rw,no_root_squash,async)
    

    这行配置允许IP地址在192.168.1.0到192.168.1.255范围内的所有设备以读写模式挂载NFS共享,并禁用了root_squash

  4. 重启NFS服务
    修改完配置文件后,你需要重启NFS服务以使更改生效。在群晖上,你可以通过SSH运行以下命令来重启NFS服务:

    sudo synoservice --restart nfsd
    

    或者,你可以在DSM的控制面板中找到NFS服务并重新启动。

请注意,使用no_root_squash选项可能会带来安全风险,因为它允许远程root用户以完全的root权限在NAS上操作文件。确保你完全理解这一变更的安全影响,并且只在完全信任的网络环境中使用。此外,由于群晖的系统更新可能会覆盖自定义的/etc/exports配置,因此在进行系统更新后你可能需要重新应用这些更改。