我已经像这样设置了 Samba(这是完整的smb.conf
):
[global]
log file = /var/log/samba/log
log level = 2
security = user
[homes]
browsable = false
read only = no
valid users = %S
我想让服务器上的每个用户都能访问他们的主目录,但由于某些未知原因,只有我的“管理员”帐户可以这样做。(我以前用 ftp 做过这件事,但现在也需要 smb)。
当我尝试时smbclient -L localhost -U [user]
,我得到了NT_STATUS_LOGON_FAILURE
,除了管理员(这是在 ubuntu 安装期间创建的用户,不是根)。
Samba 日志文件显示NT_STATUS_NO_SUCH_USER
:
[2012/04/04 20:26:02.081454, 2] smbd/reply.c:554(reply_special)
netbios connect: name1=LOCALHOST 0x20 name2=DIALER-X 0x0
[2012/04/04 20:26:02.081733, 2] smbd/reply.c:565(reply_special)
netbios connect: local=localhost remote=dialer-x, name type = 0
[2012/04/04 20:26:02.087200, 2] auth/auth.c:314(check_ntlm_password)
check_ntlm_password: Authentication for user [public] -> [public] FAILED with error NT_STATUS_NO_SUCH_USER
我怀疑我必须手动创建 samba 用户,但手册页指出,If the client has passed a username/password pair and that username/password pair is validated by the UNIX system's password programs, the connection is made as that username.
对我来说,这听起来只要提供的用户名/密码是服务器上的有效登录,它就应该可以工作。
我是否忽略了一些显而易见的事情?我不想/无法手动更新 samba 用户和密码以匹配服务器。
11.10
答案1
您需要使用命令手动将您的用户和密码添加到 samba 用户数据库smbpasswd
。
由于 Samba 和 Ubuntu 上的标准密码机制都只存储密码的哈希值,而不存储密码本身,因此无法使用本地用户帐户。它们使用的哈希值不兼容,因此无法将密码哈希值从一个数据库导入另一个数据库。
当用户更改密码时,您可以采取一些措施来同时自动更新两个数据库中的密码,例如使用pam_smbpass
。