Synology 共享中显示 Windows 10 用户 ID

Synology 共享中显示 Windows 10 用户 ID

我有一台 Synology DS1513+,运行 DSM5.0-4493 更新 1(几年前的操作系统)。

我有安装了该磁盘的 Windows 7 和 10 笔记本电脑,还有一台通过 NFS 安装同一区域的 Linux 笔记本电脑。

我在 Linux 机和 Synology 上的开发帐户是用户 ID 1000。

我希望我的 Windows 机器也能显示该用户 ID,这样他们就有完全的权限编辑所有内容、创建和删除文件等等。(我开发的软件可以在两个操作系统上运行,因此可以在两个操作系统上编辑和构建。)

很久以前,在 Windows 7 机器上,我显然也以某种方式将其用户 ID 设置为 1000,但在 Windows 10 机器上,我的用户 ID 是 4294967294。我怎样才能将其更改为 1000?

当我“映射网络驱动器”时,我尝试检查“使用不同的凭据挂载”,希望它会要求我提供备用用户 ID,但它似乎从未询问要使用哪些不同的凭据。(我也想不出为什么磁盘会相信我的话,我应该是用户 1000。)

我也尝试过net use V: \\diskstation\volume1\MyDisk MyPassword /USER:SynologyUserName并且被告知:

You can't connect to the file share because it's not secure. This
share requires the obsolete SMB1 protocol, which is unsafe and could
expose your system to attack. Your system requires SMB2 or higher. For
more info on resolving this issue, see:
https://go.microsoft.com/fwlink/?linkid=852747

我还尝试进入控制面板\用户帐户\凭据管理器\添加 Windows 凭据,然后输入共享 \diskstation\volume1\MyDisk、MyUser 和 MyPassword。单击“确定”后:

This information cannot be 
saved.  Make sure all the information is correct and that all required fields are completed.

Error code: 0x80070057
Error Message: The parameter is incorrect.

我也尝试过简单地将共享设置为 diskstation。单击“确定”后,共享被接受,并在“控制面板\用户帐户\凭据管理器”的“Windows 凭据”下显示为“diskstation”。但随后我卸载并重新安装共享,尝试创建文件,UID 仍然是 4294967294,而不是我创建的凭据名称的 1000。

我也在 Google 上搜索过“map synology user ID”。没有找到任何有用的信息。

我已通过 ssh 登录并查找find名称/中包含 samba 的任何配置文件,但什么也没找到。(嗯,两个小文件,但似乎不是 samba.conf 或用于映射用户的任何文件。)

我也通过 http 界面系统地搜索了 synology 的控制面板,但一无所获。

答案1

您的 Synology 盒子几乎肯定正在运行桑巴作为“Windows文件共享协议”的实现。

在 Samba 中,有一个称为 UID 映射的概念,它将 Windows 样式的 SID(在 Windows 中创建新用户时在后台自动生成的长字符串数字)映射到 UNIX 样式的 UID(通常以 1000 这样的小数字开头,并在某些系统上增加到 6 位数字)。

这是因为 Windows SID(Windows 帐户的数字标识符)与 UNIX UID(UNIX 帐户的数字标识符)有根本区别。它们的格式不同,而且更改 Windows SID 并不容易(而使用 root 权限更改 UNIX UID 则相当容易)。

以下是 Windows SID 格式的示例:S-1-5-21-1180699209-877415012-3182924384-500

我们必须在 SID 和 UID 之间进行“映射”的原因是,即使你尝试过将 Windows SID 更改为类似于的内容1000,这是行不通的,因为 Windows 要求用户的 SID 具有一定的长度和语法,包括以“S”开头并包含一串带有破折号的长数字。

如果它足够老,它可能运行的是 Samba 3。讨论了 Samba3 中的 UID 映射这里

Samba4 中的 UID 映射在概念上是相同的,但由您选择的“身份映射后端”实现 - 请参阅这里

以下是在 Samba4 域控制器上进行身份映射的方法:这里

但是,除了 wiki 文章(它们提供了非常有用的概念信息,以便您了解幕后发生的事情)之外,我能找到的有关这种组合的最有用的信息是:

  • Windows 文件共享
  • Synology
  • Synology 盒子上客户端到用户的映射

... 位于AskUbuntu 上的这个答案,处理用户名称,不是用户ID

在此处输入图片描述

如果您发现这些信息有用,您应该点击上面的 AskUbuntu 链接,并为 Aaron 的好答案投一票。

从 Aaron 的回答中可以得出的关键见解是,如果您的 Windows 用户名和密码与 Synology 服务器用户的用户名和密码完全匹配,那么您无需执行任何手动身份验证即可进入(您不必输入任何用户名/密码),并且从 Synology 方面来看,您将拥有的文件/目录权限的 UID 将根据用户在Synology拥有相同用户的一方姓名作为您的 Windows 帐户。


它可能无法在 Windows 10 上运行的另一个原因是:如果你使用 Microsoft 帐户登录 Windows 10,你的用户名实际上并不是你认为的那样!你的用户名实际上是你的 Microsoft 帐户电子邮件地址;它只是出现是您在 Win32 领域中为其提供的任何“友好”用户名(例如,您有文件夹,C:\Users\swissfrank而不是)。C:\Users\[email protected]

因此,当您使用用户名[email protected](而不是在 Synology 端正确创建为 UNIX 用户 ID 1000 的用户swissfrank)访问 Synology 服务器时,它会将您视为不同的用户。这是设计使然,并且绝对意味着您需要一个用户名映射,如 Aaron 的回答中所述。内容将类似于:

swissfrank = [email protected]

相关内容