LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 7403|回复: 22

Samba3.0轻松搞定PDC域服务器

[复制链接]
发表于 2003-11-17 23:53:39 | 显示全部楼层 |阅读模式
原文在 http://www.5ilinux.com/samba01.html
转载请注明出处,谢谢!

Samba3.0轻松搞定PDC域服务器


前面我们已经讲了关于samba服务器如何充当一个局域网的文件服务器,以满足平时的工作需要,在看本文档之前,大家最好先看看那篇文档《Samba3.0服务器实战调试》(http://www.5ilinux.com/samba.html),大家只有领会了那篇文档以后,再来看用samba实现PDC就不死很困难了。

其实早在samba2.2版本已经能非常好的支持samba做PDC(主域控制器),只不过到了3.0对域的支持更加好,到现在为止最新的版本3.0,已经支持AD,并且支持Microsoft Kerberos 认证、完全重写和可配置的认证子系统等新功能。

好了,我们来开始今天的任务,我们今天只是实现简单的域控制器PDC的建立,至于他支持的AD和Kerberos等功能大家慢慢的自己去研究,我也不是很懂哦:)

1。安装samba,这个很简单了,如果你是fedora,就可以从光盘直接安装samba的rpm包。

rpm -ivh samba-3.0.0-15.i386.rpm

大家也可以直接到samba的官方网站(http://www.samba.org)去下载最新的软件包

或者下载最新的tar包,http://us1.samba.org/samba/ftp/samba-3.0.0.tar.gz

那就最好按下面的方法编译

tar zvxf samba-3.0.0.tar.gz

cd samba-3.0.0

./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/libexec \
--datadir=/usr/share/samba \
--sysconfdir=/etc/samba \
--localstatedir=/usr/local/samba/var \
--libdir=/usr/lib \
--with-lockdir=/var/locks/samba \
--with-swatdir=/usr/share/samba/swat \
--with-codepagedir=/etc/samba/codepages \
--with-configdir=/etc/samba \
--with-smbwrapper \
--with-automount \
--with-smbmount \
--with-pam \
--with-pam_smbpass \
--with-winbind

make

make intall

ok!安装完以后,下面才是我们的重点,修改/etc/samba/smb.conf,大家最好在原来的基础上修改。

[global]

workgroup = bmit
netbios name = proxy
server string = Samba PDC running %v
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192


# 这里的workgroup = bmit就代表bmit域,当然如果用bmit.com那就更加规范,但为了客户端输入的方便,还是直接bmit的好,netbios name = proxy表示这台服务器的netbios名,socket options选项设置控制 TCP/IP 性能。所显示的设置就可以与基于 Linux 的系统一起很好地工作了。

os level = 64
preferred master = yes
local master = yes
domain master = yes


#domain master 选项是一个“开关”,通告 Samba 将成为主域控制器。(local master browser)是维护局域网机器列表的服务器被称为本地主浏览器。

security = user
encrypt passwords = yes
domain logons = yes
log file = /var/log/samba/log.%m
log level = 2
max log size = 50
hosts allow = 127.0.0.1 192.168.1.0/255.255.255.0


#这里我们还是使用user验证方式,不要悬在所谓的domain,至于hosts allow大家可以根据自己的需求写那些网段可以访问你的服务器,或者索性不写也行。

logon home = \\%L\%U\.profile
logon drive = H:
logon path = \\%L\profiles\%U
logon script = netlogon.bat

#以上是漫游设置和登录脚本,logon path = \\%L\profiles\%U,会于下面我们要说的 [profiles] 共享成对应关系。

[homes]
comment = Home Directories
browseable = no
writeable = yes

[profiles]
path = /home/samba/profiles
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700

[netlogon]
comment = Network Logon Service
path = /home/netlogon
read only = yes
browseable = no
write list= root

以上是关于共享的手腕子,其中profile是用来存放每个登录用户的设置文件,以便用户以后登录可以从服务器读取以前的桌面设置,netlogon是用来存放登录脚本的,所以要限制写的权限,假设这里只有root用户可以有权限。

至于其他共享,完全可以参照《Samba3.0服务器实战调试》(http://www.5ilinux.com/samba.html)这篇文章共享设置,我就不再重复讲了



接着是将用户和机器帐户添加到域控制器。

先建立创建了下列各组以及创建两个必要目录,并设置正确的所有权。


groupadd admin

groupadd machines

mkdir -m 0775 /home/netlogon

chown root.admins /home/netlogon

mkdir /home/samba /home/samba/profiles

chown 1757 /home/samba/profiles

对上述目录设置正确的权限和所有权是保护服务器的关键一步哦  

手工添加机器帐号

比如我的客户端的机器名是ibm240,那么我们可以这么做

useradd -g machines -d /dev/null -c "machine id" -s /bin/false ibm240$

passwd -l ibm240$

输入两遍密码;

不要忘记标上美元符号;这是必需的,它将该项标识为信任帐户

创建 linux 帐户后,我们现在可以将该机器添加到 /etc/samba/smbpasswd

smbpasswd -a -m ibm240



当然你也可以让系统自动添加机器帐号,用下面的方法,不过大家最好先试手动添加,成功后再试验系统自动添加

自动添加只要在[global]添加

add user script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u


添加用户帐号

首先添加的是root帐户,把root加入到smb帐户中

smbpasswd -c root

这一步很重要,因为后面的加入域要用到有管理员的帐号加入域的权限,否则用普通用户好像不能顺利加入域

然后添加普通用户

useradd frank

passwd frank

smbpasswd -a frank

为了方便以后的管理,最好smb的用户密码和unix系统密码一样,这样我们还可以用到samba的密码同步功能

#下面的选项语句将允许用户从 Windows 客户机上更改他们的 Samba 密码,这样会随即更新他们的 UNIX 密码以与新的 Samba 项相匹配。但是如果更改了 UNIX 密码,那么同一技术不能逆向工作;必需手工同步更改 Samba 密码。也是在[global],初学者可以先不做这个工作。


unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *Enter*new*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd: *all*authentication*tokens*updated*successfully*

#上述语句中唯一值得一提的是 passwd chat 选项,不管这里如何显示它,都要将它输入成一行。还要注意有些选项使用“password”,而有些使用“passwd”。

Samba PDC 的配置就这样完成了。剩下唯一要做的是将客户机加入到域中。记得重启samba服务哦!


客户端的设置,这里由于条件的限制,我只试验了windows2000客户端加入域,至于winxp和win98的加入大家自己去试验。

(win200机器最好先重启一下,可以避免一些不必要的问题)然后转至 控制面板 -> 网络-> 网络标示,如果机器目前被配置在 工作组 选项下,那么选中 域 单选按钮并输入域名bmit。

现在,通过使用用户名 root 和相应的密码登录到域。必需初始化服务器和客户机机器之间的“秘密”。从此时起,任何已认证的用户都可以从这台机器登录。
应该出现一个欢迎您来到 XX域的消息

恭喜你已经成功将samba配置成PDC

据说xp加入samba建立的域有点复杂,我没试验过,大家有兴趣的话,最好去samba的老家看看文档,好像是要设置安全选项,并修改注册表,好麻烦哦,幸亏我没有xp :)

作者:张微波

2003年11月17日晚于北京
发表于 2004-1-6 20:45:39 | 显示全部楼层
我照如上的方法去做,有几点不明之处:
1.运行smbpasswd -c root出现错误“Can't load /etc/samba/smb.conf - run testparm to debug it”但我运行testparm smb.conf并没有错误呀?以下是我的配置文件
# Global parameters
[global]
        workgroup = BMIT
        server string = Samba PDC running %v
        log level = 2
        log file = /var/log/samba/log.%m
        max log size = 50
        socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        logon script = netlogon.bat
        logon path = \\%L\Profiles\%U
        logon drive = H:
        logon home = \\%L\%U\.Profile
        domain logons = Yes
        os level = 64
        preferred master = Yes
        domain master = Yes
        dns proxy = No

[homes]
        comment = Home Directories
        read only = No
        browseable = No

[Profiles]
        path = /home/samba/profiles
        read only = No
        create mask = 0600
        directory mask = 0700
        guest ok = Yes
        browseable = No

[netlogon]
        comment = Network Logon Service
        path = /home/netlogon
        write list = root
        browseable = No
2.netlogon.bat是如何编写的?
3.我在win2000下登入域bmit,不知道输入什么用户名,是root还是frank?
谢谢赐教!!!
发表于 2004-4-13 18:15:20 | 显示全部楼层
请问为什么我按照这篇文章的做法,用smbpasswd -cd root
老是出现Can't load /etc/samba/smb.conf - run testparm to debug it
这样的问题,请问这是怎么会事,谁能帮我,谢谢

[global]
workgroup = happy
netbios name = happy
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
domain logons = yes
domain master = yes
log file = /var/log/samba/log.%m
log level =2
max log size = 50
perferred master = yes
local master = yes
os level = 64
#logo script = scripts\%U.bat
wins support = yes
server string = Samba PDC running %v
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
logon home = \\%L\%U\.profile
logon drive = H:
logon path = \\%L\profiles\%U
logon script = netlogon.bat
adduser script = /usr/sbin/useradd -d /dev/null -g user -s /bin/false -M %u
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *Enter*new*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd: *all*authentication*tokens*updated*successfully*
[homes]
comment = home directories
writeable = yes
browseable =no
create mask = 0600
directory mask =0700
[netlogon]
path= /home/samba/netlogon
read only = yes
browseable =no
write list = root
[mp3]
path=/home/mp3
read only =yes
browseable=yes
share modes =yes
[profiles]
path= /home/samba/profiles
writeable = yes
browseable =no
create mask = 0600
direcory mask =0700
发表于 2004-7-18 00:01:41 | 显示全部楼层
他书错了,应该是smbpasswd -a root
发表于 2004-7-19 10:56:59 | 显示全部楼层
Good!!!1
发表于 2004-9-22 15:50:17 | 显示全部楼层
chown 1757 /home/samba/profiles 有這種寫法??
chown root.admins /home/netlogon沒有admins這個組哦

有好幾處有錯誤....

不過,還是謝了...
发表于 2004-9-22 18:21:05 | 显示全部楼层
最初由 河边星星 发表
chown 1757 /home/samba/profiles 有這種寫法??
chown root.admins /home/netlogon沒有admins這個組哦

有好幾處有錯誤....

不過,還是謝了...


没有那个组就新建看看
发表于 2004-9-22 18:53:29 | 显示全部楼层

請問樓上的高手,為什麽我在windows2000下加域的時候提示密碼不管我用什麽用戶名和密

# Global parameters
[global]
        workgroup = SERVER
        netbios name = SHLINUX
        server string = Samba PDC running %v
                socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_REVBUF=8192
                os level = 64
                preferred master = yes
                local master = yes
                domain master = yes
                domain logons = yes
                security = user
                encrypt passwords = yes
                domain logons = yes
                log file = /var/log/samba/log.%m
                log level = 2
                max log size =50
                logon home = \\%L\%u
                logon drive = M:
                logon path = \\%L\profiles\%U

        dos charset = CP950
        unix charset = CP950
        hosts allow = 192.168.1., 192.168.7., 127.0.0.1

[profiles]
path = /etc/samba/pdc/profiles
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700

[netlogon]
comment = Network Logon Service
path = /etc/samba/pdc/netlogon
read only = yes
write list = root
发表于 2004-9-22 18:54:11 | 显示全部楼层

试了一下

samba3.0已经支持xp了
发表于 2004-9-22 18:59:02 | 显示全部楼层
我已經用了
smbpasswd -a root
的密碼了,還是不行哦........但是windows會發現有此域,不用驗證的用戶名和密碼...怎麽回事...
useradd -d /dev/null -c "machine name -peter" -s /bin/false peter$
也運行了..我的windows機器名為peter
192.168.7.112b也就是做samba的那一台...它上面的samba共用等是正常的哦..
用其中的用戶名如sp02001輸入相應的密碼是可以進入的哦..........


[homes]
        comment = Home Directories
        valid users = %S
        read only = No
        create mask = 0664
        directory mask = 0775
        browseable = No

[samba]
        writable = yes
        path = /public/public
        force directory mode = 777
        force group = users
        guest ok = Yes
        force create mode = 777
        comment = Public Directory
        create mode = 777
        directory mode = 777

[sj]
        comment = SJ Directory
        path = /other/sj
        force directory mode = 777
        directory mode = 777
        create mode = 777
        force group = sj
        valid users = @sj,@mis
        write list = @sj,@mis
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表