在使用群晖NAS容器时,若遭遇无法访问映射文件的权限问题,这可能会导致数据无法正常读取或写入。在本文中,我们将探讨解决这一问题的方法,帮助用户克服文件访问限制,确保NAS容器与映射文件之间的顺畅通信,提高数据管理的便捷性和安全性。

问题描述

您的容器无法访问Synology NAS上映射的文件夹或文件并且您在容器的日志中看到“permission denied”错误。发生此错误时容器可能会意外停止。在本文中我们以Node-RED容器为例。您可能会看到以下日志

Error: EACCES: permission denied, copyfile '/usr/src/node-red/node_modules/node-red/settings.js' -> '/data/settings.js'

出现这种情况,可能是因为容器没有访问映射的文件夹或文件的权限。若要使用正确的容器功能请确保每个人都至少具有映射文件夹或文件的读取权限。 1 2具体权限要求可能因映像而异。请参阅所用映像的文档以了解详细信息。

解决方法

按照以下步骤修改映射的文件夹或文件的权限

  1. Container Manager >容器中选择容器然后单击详细信息
  2. 设置> 存储空间设置中检查映射的文件夹或文件的权限。在以下示例中容器的/data 存储空间映射到具有读取/写入权限的/docker/nodered文件夹。

File Station中进入映射的文件夹或文件并配置权限。 File StationContainer Manager中的权限设置必须一致。根据Container Manager中的设置在File Station中按以下方式配置权限

Container Manager权限File Station 权限
只读适合所有人阅读1 2
读取/写入人人可用的读写功能

例如允许Everyone读取和写入/docker/nodered文件夹。

注意

  1. 查看“docker”共享文件夹 的默认权限
  2. 容器会在 DSM 上以root或其他任意用户身份运行。容器使用的用户帐户可能因容器配置而异。因此向“ Everyone ”分配权限可确保容器可访问映射的文件夹和文件而与root或任意用户无关。