Linux SMB服务器+ PAM:如何授予LDAP用户权限?

我有一个Linux Mint SMB服务器设置默认的方式(即它来自apt-get ),所以我有这样的设置:

 passdb backend = tdbsam 

我有LDAP正确configuration与PAM(和用户login通过SSH正常工作)。

我试图在共享的设置中做到这一点:

 valid users = family 

family是LDAP服务器上的组。

但是,当我尝试以ldap用户身份连接到服务器时,它不允许我连接。 如果我以本地用户身份连接,则可以使用。

此外,Ubuntu“共享文件夹”控制面板不会显示任何networking用户列表中的人授予访问各种股份。

所以: 为什么这不工作?

加法:

这是我认为是连接的计算机的名称标记的[很长]日志文件的相关部分:

从工作站[DEFIANT]映射用户[SEC1] [christopher]

试图为克里斯托弗(克里斯托弗)做一个user_info

为christopher的user_info结构创buildstring

为christopher的user_info结构制作blob

为christopher(christopher)做了一个user_info

check_ntlm_password:使用新密码界面检查未映射用户[SEC1] [christopher] @ [DEFIANT]的密码

check_ntlm_password:映射的用户是:[SEC1] [christopher] @ [DEFIANT]

check_ntlm_password:由随机创build的auth_context挑战

挑战是:

F9 89 7B 47 67 0B 29 49 …(Gg。)I

检查validation:[克里斯托弗]

check_ntlm_password:客人无话可说

检查validation:[克里斯托弗]

is_myname(“SEC1”)返回1

push_sec_ctx(0,0):sec_ctx_stack_ndx = 1

push_conn_ctx(0):conn_ctx_stack_ndx = 0

设置秒ctx(0,0) – sec_ctx_stack_ndx = 1

安全令牌:(NULL)

用户0的UNIX令牌主要组为0,包含0个辅助组

pdb_getsampwnam(TDB):错误提取数据库。 关键:USER_christopher

pop_sec_ctx(0,0) – sec_ctx_stack_ndx = 0

check_sam_security:在passdb中找不到用户'christopher'。

check_ntlm_password:用户[克里斯托弗]的SAMauthentication失败,错误NT_STATUS_NO_SUCH_USER

check_ntlm_password:用户身份validation[christopher] – > [christopher]失败,错误NT_STATUS_NO_SUCH_USER

检查SEC1 \ christopher的NTLMSSP密码失败:NT_STATUS_NO_SUCH_USER

没有这样的用户克里斯托弗[SEC1] – 使用访客帐户

请注意,“SEC1”是服务器的名称,“DEFIANT”是客户端的名称。 我也尝试连接用户名“\”; 它正确地认识到这个领域,但仍然没有改变任何东西。

当PAM根据LDAP数据库对用户进行身份validation时,Samba根据其tdbsam后端对用户进行身份validation。 简单的解决scheme是用smbpasswd -a <username>pdbedit -a -u <username>添加它们。 复杂的解决scheme是使用LDAP作为Samba的passdb backend

编辑 :请注意,如果您将Sambaconfiguration为使用LDAP作为passdb backend ,它将仅对LDAP用户进行身份validation,而不是对本地用户进行身份validation。