奇怪的 Samba 用户名映射

奇怪的 Samba 用户名映射

我遇到了一个非常奇怪的问题,即 Samba 和用户名映射。映射文件如下:

username map = /etc/samba/users.map

/etc/samba/users.map的内容:

master = johndoe user2 user3
regular = johndoe user5 user6
restricted = johndoe user8 user9

问题是 Samba 始终映射johndoe到文件中列出的最后一个本地用户/etc/samba/users.map。在上面的示例中,johndoe将始终映射到restricted,因此如果我有一个仅允许的共享master和另一个仅允许的共享restricted,我将无法同时访问这两个共享,尽管johndoe在两个条目中都列出了。

这是正常行为吗?

答案1

正确。这是设计使然。来自文档

映射文件是逐行解析的。每行左侧应包含一个 UNIX 用户名,然后是“=”,后面是右侧的用户名列表。右侧的用户名列表可能包含 @group 形式的名称,在这种情况下,它们将匹配该组中的任何 UNIX 用户名。特殊客户端名称“*”是通配符,可匹配任何名称。映射文件的每一行最多可包含 1023 个字符。

该文件的每一行都会进行处理,方法是获取提供的用户名并将其与“=”符号右侧的每个用户名进行比较。如果提供的名称与右侧的任何名称匹配,则将其替换为左侧的名称。然后继续处理下一行。

因此,如果同一个用户帐户出现在多行中,则不会将它们包含在每个地图中,而是包含在最后定义的地图中。

如果目标是拥有“超级用户”,那么您可能需要查看特定股票列表或映射帐户群组而不是用户。

相关内容