Samba 身份验证后端的工作原理如下:
- 客户端用户名
- 通过用户名映射获取服务器用户名。这是一个系统 (/etc/passwd) 帐户。
- 如果服务器用户名为空,则转到“访客身份验证”。否则,转到“passdb/SAM 身份验证”。
passdb/SAM 认证:
- 通过 passdb/SAM 数据库检查凭证。这是因为哈希值与 UNIX 帐户不同,SAM 数据库还包含其他信息。
- 以服务器用户身份登录客户端用户
访客身份验证:
- 通过访客身份验证检查凭证,始终可以成功。
- 以“guest account”指定的用户身份登录客户端用户,默认“nobody”
不幸的是,虽然 Samba 接受“”表示来宾,但 Windows 不接受/允许这种情况。即使来宾帐户映射到“nobody”,Samba 也不会将客户端用户名“nobody”视为来宾。身份验证将通过 passdb/SAM 后端进行。同样的陷阱也适用于用户名映射。
现在我知道了 Samba 的“映射到访客”。如果配置为“错误用户”,则不存在的用户帐户将映射到访客帐户。不幸的是,这很容易出错,其问题类似于不鼓励的值“错误密码”。
我正在寻找一种方法来将一个用户或几个有限用户(例如“nobody”、“guest”)映射到来宾帐户。这可能吗?
编辑:
我尝试过这张疯狂的地图,但它不出所料地不起作用:
= guest nobody
答案1
使用username map =
。但你似乎使用了一种非正统的方法,所以我严重怀疑你真的需要它。
PS 而且,您对授权工作方式的描述超出了任何可接受的错误阈值。