December 16, 20232 yr 我已经给用户读写权限了,但是为什么新下载的文件,或者appdata里的新的文件都不能有编辑权限。我是电脑smb连接到unraid上的。每次都要unraid里重新给权限,烦死了!到底怎么设置才可以?
December 16, 20232 yr 9 hours ago, xing said: 我已经给用户读写权限了,但是为什么新下载的文件,或者appdata里的新的文件都不能有编辑权限。 这个问题很经典,正好借助这个话题来给看到这个帖子的朋友们分享一下其中的逻辑。 1. 起因 使用 SMB 去编辑文件提示没有权限的情况,很多时候都是由于用户组没有可编辑权限导致,而如果你访问的这些文件属于某一个 Docker 应用所创建,那么很有可能是由于 UMASK 变量所设置的值不包含用户组的可编辑权限,从而导致了 SMB 用户所属的用户组权限不足,进而无法编辑文件。 首先,大家需要对 Linux 的文件权限有一个大概的了解,这里我提供一些参考的资料给大家自行去学习——参考资料-1,参考资料-2(你也可以自行搜索资料去了解)。 其次,当我们使用 SMB 协议去访问 UNRAID 上的文件时,我们需要有相应的权限才能够对文件进行增删改查,很多时候这个权限主要取决于使用 SMB 的这个用户的所属用户组权限,用户组权限不够就会有权限不足的提示。 接着,如果你需要编辑的文件是某一个 docker 应用所创建出来,那么你就需要首先考虑安装这个 docker 应用时有没有配置 UMASK 变量(并不是所有的 docker 都会需要配置 UMASK 变量)。如果有配置的话,那么你需要检查变量的值是能让用户组有编辑的权限(关于 UMASK 的简单解释可以看这里,同样的你也可以自行搜索资料去了解)。另外对于新手朋友,我也推荐你了解一下 UNRAID 上正确安装 Docker 的步骤,具体的文章请看本末尾的参考资料。 2. 实际例子 这里我以 qBittorrent 为例进行讲解,因为这个应用绝大多数的 NAS 用户都会进行安装。下面是一个从 APPS 安装的 QB 应用的配置参数(Linuxserver/qbittorrent),大家需要重点关注的是 UMASK 这个设置(关于 PUID/GUID 的说明请看末尾的参考资料): UMASK 设置为 022 这个值之后,假设我利用 QB 下载一个文件,那么文件被创建出来后的默认权限是: 文件夹:rwxr-xr-x 文件:rw-r--r-- 也就是说,只有文件拥有者有完整的【读写】权限(rwx),组或者其他用户只有【读】权限(r--),这也就意味着当你通过 SMB 尝试去对 QB 所创建出来的文件进行编辑的时候是没有权限的,因为使用 SMB 协议的用户所在的组权限不足(如下图),原因就是由于 UMASK 的值导致: 如果我此时使用以下命令,为 QB 下载目录内的所有文件/文件夹添加所属组可编辑权限(w): chmod -R g+w ./downloads 然后我再进行编辑的时候就没有权限不足的提示了: 如果我将 UMASK 的值设置为 002 ,那么此时所属组的权限包含了读写的权限(rw): 此时使用 SMB 协议去编辑也没有权限不足的提示: 所以,当我们通过 SMB 去对 UNRAID 上的文件进行编辑时如果出现权限不足的情况,很多时候就是由于用户组权限不够导致。 3. 解决办法 首先,你可以将 Docker 变量中的 UMASK 的值设置为 002 ,这样 docker 应用创建出来的文件可以被 SMB 的用户进行编辑。 接下来,如果你需要对现有文件的权限进行调整,那么你可以借助 Fix Common Problem 插件处理,参考这里。 另外,你也可以使用 chmod 命令进行单独的处理,此方式比较适合处理 appdata 内的文件。因为默认情况下 appdata 内存储着各种 docker 应用的配置文件夹,有些 docker 应用需要有特定的用户权限才能正常运行,所以不能随便利用工具对所有 appdata 内的文件进行统一的改动,具体的说明看这里。 4. 其他参考资料 关于 PUID/GUID、PID/GID 这些变量的作用大家可以参考这篇《新手教程:如何在 unRAID 上正确安装 Docker》,顺便也了解一下如何正确安装 docker 应用和解决文件权限问题。 关于 UNRAID 上 SMB 用户认证的相关资料大家可以参考我前些年我的一篇文章《unRaid SMB 共享:基于Windows 10 下的 SMB 问题深入分析及解决方式》。 关于 UNRAID 上配置 SMB 的内容可以参考《新手教程:unRAID 开启 SMB 的其他方法》。 除开 UNRAID,你也可以参考我的另一篇关于 SMB 的文章《Windows 10/ 11 下安全并正确地使用 SMB 共享》。 Edited December 16, 20232 yr by JackieWu
April 21, 20242 yr On 12/17/2023 at 4:02 AM, JackieWu said: 这个问题很经典,正好借助这个话题来给看到这个帖子的朋友们分享一下其中的逻辑。 1. 起因 使用 SMB 去编辑文件提示没有权限的情况,很多时候都是由于用户组没有可编辑权限导致,而如果你访问的这些文件属于某一个 Docker 应用所创建,那么很有可能是由于 UMASK 变量所设置的值不包含用户组的可编辑权限,从而导致了 SMB 用户所属的用户组权限不足,进而无法编辑文件。 首先,大家需要对 Linux 的文件权限有一个大概的了解,这里我提供一些参考的资料给大家自行去学习——参考资料-1,参考资料-2(你也可以自行搜索资料去了解)。 其次,当我们使用 SMB 协议去访问 UNRAID 上的文件时,我们需要有相应的权限才能够对文件进行增删改查,很多时候这个权限主要取决于使用 SMB 的这个用户的所属用户组权限,用户组权限不够就会有权限不足的提示。 接着,如果你需要编辑的文件是某一个 docker 应用所创建出来,那么你就需要首先考虑安装这个 docker 应用时有没有配置 UMASK 变量(并不是所有的 docker 都会需要配置 UMASK 变量)。如果有配置的话,那么你需要检查变量的值是能让用户组有编辑的权限(关于 UMASK 的简单解释可以看这里,同样的你也可以自行搜索资料去了解)。另外对于新手朋友,我也推荐你了解一下 UNRAID 上正确安装 Docker 的步骤,具体的文章请看本末尾的参考资料。 2. 实际例子 这里我以 qBittorrent 为例进行讲解,因为这个应用绝大多数的 NAS 用户都会进行安装。下面是一个从 APPS 安装的 QB 应用的配置参数(Linuxserver/qbittorrent),大家需要重点关注的是 UMASK 这个设置(关于 PUID/GUID 的说明请看末尾的参考资料): UMASK 设置为 022 这个值之后,假设我利用 QB 下载一个文件,那么文件被创建出来后的默认权限是: 文件夹:rwxr-xr-x 文件:rw-r--r-- 也就是说,只有文件拥有者有完整的【读写】权限(rwx),组或者其他用户只有【读】权限(r--),这也就意味着当你通过 SMB 尝试去对 QB 所创建出来的文件进行编辑的时候是没有权限的,因为使用 SMB 协议的用户所在的组权限不足(如下图),原因就是由于 UMASK 的值导致: 如果我此时使用以下命令,为 QB 下载目录内的所有文件/文件夹添加所属组可编辑权限(w): chmod -R g+w ./downloads 然后我再进行编辑的时候就没有权限不足的提示了: 如果我将 UMASK 的值设置为 002 ,那么此时所属组的权限包含了读写的权限(rw): 此时使用 SMB 协议去编辑也没有权限不足的提示: 所以,当我们通过 SMB 去对 UNRAID 上的文件进行编辑时如果出现权限不足的情况,很多时候就是由于用户组权限不够导致。 3. 解决办法 首先,你可以将 Docker 变量中的 UMASK 的值设置为 002 ,这样 docker 应用创建出来的文件可以被 SMB 的用户进行编辑。 接下来,如果你需要对现有文件的权限进行调整,那么你可以借助 Fix Common Problem 插件处理,参考这里。 另外,你也可以使用 chmod 命令进行单独的处理,此方式比较适合处理 appdata 内的文件。因为默认情况下 appdata 内存储着各种 docker 应用的配置文件夹,有些 docker 应用需要有特定的用户权限才能正常运行,所以不能随便利用工具对所有 appdata 内的文件进行统一的改动,具体的说明看这里。 4. 其他参考资料 关于 PUID/GUID、PID/GID 这些变量的作用大家可以参考这篇《新手教程:如何在 unRAID 上正确安装 Docker》,顺便也了解一下如何正确安装 docker 应用和解决文件权限问题。 关于 UNRAID 上 SMB 用户认证的相关资料大家可以参考我前些年我的一篇文章《unRaid SMB 共享:基于Windows 10 下的 SMB 问题深入分析及解决方式》。 关于 UNRAID 上配置 SMB 的内容可以参考《新手教程:unRAID 开启 SMB 的其他方法》。 除开 UNRAID,你也可以参考我的另一篇关于 SMB 的文章《Windows 10/ 11 下安全并正确地使用 SMB 共享》。 请问我使用smbuser(我创建的用于samba访问的用户)凭据在windows上访问smb后,对文件进行修改时,系统仍然提示我文件访问被拒绝,需要提供smbuser的权限才能对此文件进行更改(问题是我已经使用smbuser进行登录了。。)。这种情况需要进行哪些操作呢。
April 21, 20242 yr 1 minute ago, 0vector0 said: 请问我使用smbuser(我创建的用于samba访问的用户)凭据在windows上访问smb后,对文件进行修改时,系统仍然提示我文件访问被拒绝,需要提供smbuser的权限才能对此文件进行更改(问题是我已经使用smbuser进行登录了。。)。这种情况需要进行哪些操作呢。 常见问题-11:SMB 文件权限问题
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.