Samba4【家园】分享

Sam*_*azy 6 linux ubuntu samba share samba4

我在使用 [homes] 共享时遇到问题。操作系统是 Ubuntu 12.04。我已经安装了 samba 4.0.3、bind9 dlz、ntp、winbind,除了 pam 模块之外的所有东西,并做了来自https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO 的所有测试。

运行 getent passwd 和 getent user 工作得很好。创建一个简单的共享也很好。我可以从 windows mmc 管理单元管理用户、GPO 和 DNS。我可以将winxp,7,8加入域并完美登录。我可以从 Windows 等更改我的密码。

我可以说一切都很好,很高兴:) buuuut,不,主目录不起作用。

在这里搜索,在我们的好朋友谷歌上,我收集到了一个简单的

[homes]
        read only = no
        path = /storage-server/users/
Run Code Online (Sandbox Code Playgroud)

并将 dsa.msc 中用户的主文件夹映射到 \\server-001\username 或 \\server-001\homes 应该为我提供一个可以为我的用户 homedir 映射的主共享。但是管理单元给我一个错误,说它无法创建主文件夹,因为尚未找到网络名称(葡萄牙语的粗略翻译)。

还有,跑步

root@server-001:/storage-server/users# smbclient //server-001/test -Utest%'12345678' -c 'ls'
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.3]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
Run Code Online (Sandbox Code Playgroud)

服务器名称没问题,如果我在同一台服务器上进行简单共享,它打开就好了。如果我将用户 homedir 映射到这个简单的共享,它就可以工作。

我想要的是,每次在 Windows 上创建新用户时,我都不必在 linux 上手动创建一个新文件夹。

它看起来像权限,但我找不到任何有关此的文档(是的,我已经尝试过联机帮助页,但是很难说仅在 man smb.conf 上有这么多选项)。

我的 smb.conf 现在看起来像这样(我知道很简单)

# Global parameters
[global]
        workgroup = MYDOMAIN
        realm = MYDOMAIN.LAN
        netbios name = SERVER-001
        server role = active directory domain controller
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate

[netlogon]
        path = /usr/local/samba/var/locks/sysvol/mydomain.lan/scripts
        read only = No

[sysvol]
        path = /usr/local/samba/var/locks/sysvol
        read only = No


[homes]
        read only = no
        path = /storage-server/users
Run Code Online (Sandbox Code Playgroud)

文件夹权限 /storage-server drwxr-xr-x 6 root root 4096 Fev 15 15:17 storage-server

/storage-server/users
drwxrwxrwx  6 root root  4096 Fev 18 17:05 users/
Run Code Online (Sandbox Code Playgroud)

是的,我绝望到在用户文件夹上设置 777 ......并不为此感到自豪。

任何指向正确方向的指针都将受到欢迎。

编辑为包括:

root@server-001:/# wbinfo --user-info=test
MYDOMAIN\test:*:3000045:100:test:/home/MYDOMAIN/test:/bin/false
root@server-001:/# wbinfo -n test
S-1-5-21-1957592451-3401938807-633234758-1128 SID_USER (1)
root@server-001:/# id test
uid=3000045(MYDOMAIN\test) gid=100(users) grupos=100(users)
root@server-001:/# wbinfo -U 3000045
S-1-5-21-1957592451-3401938807-633234758-1128
root@server-001:/# 
Run Code Online (Sandbox Code Playgroud)

编辑2:

getent 密码 | 测试

MYDOMAIN\test:*:3000045:100:test:/home/MYDOMAIN/test:/bin/false
Run Code Online (Sandbox Code Playgroud)

我不知道如何将该主文件夹更改为 /storage-server/users/test 所以我只是去了 ln -s /storage-server/users /home/MYDOMAIN 以防万一。仍然,没有变化,同样的错误。

编辑 3

在 log.smbd 上,尝试将测试用户主文件夹设置为 \server-001\test 时出现以下错误

[2013/02/20 14:22:08.446658,  2] ../source3/smbd/service.c:418(create_connection_session_info)
user 'MYDOMAIN\Administrator' (from session setup) not permitted to access this share (test)
Run Code Online (Sandbox Code Playgroud)

Rya*_*ler 4

尝试类似的方法:

[homes]
   browseable = no
   read only = no
   create mask = 0700
   directory mask = 0700
   valid users = %S
Run Code Online (Sandbox Code Playgroud)

这应该进行设置,以便用户无法看到彼此的主文件夹,文件/文件夹是安全创建的,并且应该自动创建文件夹。