XJD*_*HDR 5 permissions samba password username windows-10
我想要创建 Samba 共享的说明,该共享只能由特定的 Windows 10 用户访问,无需密码。
我已经阅读了一些教程,虽然我可以轻松创建任何人都可以访问的共享,但我无法创建只有特定用户可以访问的共享。我可以看到有问题的目录,但如果我尝试打开它,则会收到“拒绝访问”错误,并且 Windows 文件资源管理器要求输入用户名和密码。
我确实使用 Windows PC 上的用户名和与 Windows 用户相同的密码创建了一个 linux 用户。如果我在上述提示中输入我创建的 Linux 用户的凭据,我就会被授予访问权限。此时我能想到的是Linux帐户的用户名与相应的Windows帐户不一样。
这是我在 smb.conf 中的内容
encrypt passwords = yes
security = user
[Email Backup]
comment = email backup folder
path = /home/samba/emailbackup
guest ok = yes
read only = no
browseable = yes
valid users = xavie emailer +emailbackup
Run Code Online (Sandbox Code Playgroud)
xavie
是应该与 Windows 帐户相对应的 Linux 帐户的名称,emailer
是需要访问该目录的另一个 Linux 帐户,并且emailbackup
是两个帐户都是其成员的组。Windows 帐户是 Microsoft 帐户(即不是本地帐户;与 @Outlook.com 电子邮件地址绑定)(如果有任何更改)。
如果这个问题是由错误的用户名引起的,任何人都可以告诉我如何找到需要分配给 Linux 帐户的用户名(例如,是否有一个日志文件我可以查看以查看哪些用户尝试获取访问权限)到 Samba 共享)?否则,我还可以检查其他可能导致此问题的原因吗?
编辑: 我在互联网上进行了一些搜索并取得了一些进展。在检查了 Samba 的日志文件后,我发现我认为用户名不正确是正确的。根据日志文件,当用户使用 Microsoft 帐户时,Windows 10 会使用该帐户使用的电子邮件地址而不是用户名向 Samba 识别用户。这是我看到的日志(级别 2):
[2016/08/20 14:15:36.349641, 2] ../source3/param/loadparm.c:2700(lp_do_section)
Processing section "[All Users]"
[2016/08/20 14:15:36.349966, 2] ../source3/param/loadparm.c:2700(lp_do_section)
Processing section "[Email Backup]"
[2016/08/20 14:15:36.350850, 2] ../source3/auth/auth.c:315(auth_check_ntlm_password)
check_ntlm_password: Authentication for user [<snip email address>] -> [<snip email address>] FAILED with error NT_STATUS_NO_SUCH_USER
Run Code Online (Sandbox Code Playgroud)
我将电子邮件地址添加到 smbuser 文件中,将其与我创建的 Linux 帐户关联起来。这有效,日志现在显示我已成功进行身份验证,但现在遇到了新问题。
新问题是,当登录到我上面提到的帐户时,Samba 共享在我的电脑上根本不起作用。基本上,我的 Ubuntu 服务器上有两个共享;任何人都可以访问的公共共享以及我希望仅 Windows 10 用户可以访问的其他共享。在我进行上述更改后,该 Windows 10 用户现在无法再看到任何共享,甚至无法访问 Ubuntu 服务器。OTOH,我父亲的笔记本电脑,在 Samba 上没有帐户,可以访问服务器并查看两个共享(但无法在未经身份验证的情况下访问非公开共享)。以下是对 smbusers 进行更改后创建的新日志:
[2016/08/20 14:36:44.523779, 2] ../source3/param/loadparm.c:2700(lp_do_section)
Processing section "[All Users]"
[2016/08/20 14:36:44.524358, 2] ../source3/param/loadparm.c:2700(lp_do_section)
Processing section "[Email Backup]"
[2016/08/20 14:36:44.552274, 2] ../source3/auth/auth.c:305(auth_check_ntlm_password)
check_ntlm_password: authentication for user [<snip email address>] -> [xavie] -> [xavie] succeeded
[2016/08/20 14:36:44.553509, 1] ../source3/param/loadparm.c:2389(lp_idmap_range)
idmap range not specified for domain '*'
[2016/08/20 14:36:44.553782, 1] ../source3/auth/token_util.c:430(add_local_groups)
SID S-1-5-21-1934213540-918117097-1557597498-1000 -> getpwuid(1002) failed
[2016/08/20 14:36:44.554723, 1] ../source3/param/loadparm.c:2389(lp_idmap_range)
idmap range not specified for domain '*'
[2016/08/20 14:36:44.554938, 1] ../source3/auth/token_util.c:430(add_local_groups)
SID S-1-5-21-1934213540-918117097-1557597498-1000 -> getpwuid(1002) failed
Run Code Online (Sandbox Code Playgroud)
以下是 smb.conf 的当前内容,如果对任何人有帮助的话。我只包括我改变的内容;任何未提及的内容均默认为:
[global]
log level = 2
username map = /etc/samba/smbusers
encrypt passwords = yes
security = user
[All Users]
comment = Directory accessible to all users
path = /home/samba/allusers
guest ok = yes
read only = no
browseable = yes
create mask = 0777
directory mask = 0777
[Email Backup]
comment = email backup folder
path = /home/samba/emailbackup
guest ok = yes
read only = no
browseable = yes
valid users = xavie emailer +emailbackup
Run Code Online (Sandbox Code Playgroud)
谁能看到我遇到的新问题是什么?
非常感谢您的帮助,亲切的问候
我已经设法弄清楚如何使我所要求的工作起作用并将发布说明。
log level = 2
到smb.conf
. 然后启动并启用 Samba 服务。然后,在登录相关帐户的同时,使用 Windows PC 上的文件资源管理器连接到 Samba 服务器(无需打开任何共享目录)。然后打开位于 的日志文件,/var/log/samba/log.<ip address of Windows PC>
其中将记录所需的用户名。如果需要,您现在可以将日志级别设置为 0。useradd
(如果您愿意,也可以使用现有帐户)。您无需担心此帐户的密码,但如果您创建新帐户,您可能需要阻止其登录。该帐户的用户名不必与上面提到的名称相同,但如果是的话会更容易。该帐户的目的是为了文件权限以及让 Linux 确定允许 Windows 用户访问哪些文件和目录。smbpasswd
。确保分配给该帐户的密码与 Windows 帐户使用的密码相同。!<Samba user> = <Windows user>
到smb.conf
或添加<Samba user> = <Windows user>
到smbusers
和。username map = /etc/samba/smbusers
smb.conf
valid users =
您希望只能通过 Windows 帐户访问的任何共享上设置该选项。