Samba之PDC配置
 
本文出自 键盘系人生 博客,请务必保留此出处 [url]http://llk726.blog.51cto.com/622293/122045[/url]
 
1、安装SAMBA Tar包
 
1)准备工作:
[url]www.samba.org[/url] 上获得最新的安装包samba-3.0.21c.tar.gz,并存放在/usr/local/src目录下。
 
2)编译、安装:
首先进入/usr/local/src目录下,执行解包指令。
# tar -zvxf samba-3.0.21c.tar.gz
然后进入samba-3.0.21c目录下,在这个目录中有一个whatsnew.txt的文件,这个文件记录了samba-3.0.21c版本对以前几个版本修正的错误,如果英文不成问题的话,建议看看。在此不再赘述,然后直接进入source目录下准备编译。
# cd samba-3.0.21c/source/
# ./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 install
完成后如果没有 /etc/samba目录则自建一个,如果有就可直接编辑smb.conf文件了。
# cd /samba-3.0.21c/Packing/RedHat-9
# cp smb.conf /etc/samba
# cp smb.init /etc/rc.d/init.d/smb
加入启动项
# chkconfig --add smb
# chkconfig --level 35 smb on
# service smb start
# netstat –anlt 查看139,445端口开了没。
 
2、配置SAMBA
 
1) 基本配置:
A.设置配置文件内容
配置信息分为两个部分:全局参数区[global],配置一些公共信息;资源共享区,配置Linux服务器上要共享的资源。
[global]
workgroup=mygroup         #工作组名或Windows的域名
server string=samba server      #对samba服务器的注释说明
printcap name=/etc/printcap      #配置samba服务启动时,将自动加载的打印机配置文档
load printers=yes        #配置是否允许打印配置文档中的任何打印机开机时自动加载(默认)
security=user        #配置安全模式,此处是需要登录时输入用户名和密码
encrypt passwords=yes         #使用加密密码方式
smb passwd file=/etc/smbpasswd #samba密码文档
 
[homes]          #samba服务为每一个samba用户提供一个主目录,该共享目录通常只有用户本身能够使用。个人的主目录默认存放在/home目录下,每个Linux用户有一个单独的子目录。
comment=Home Directories   #对共享目录说明
browseable=no       #是否允许用户浏览任何人的主目录,即homes目录
writable=yes               #是否允许写入个人主目录
 
[myshare] #新建一个共享名称
comment = mail share #对共享目录说明
path = /home/shared #共享目录名称
valid users = llk726,tge #允许访问的用户或组
write list = llk726 #允许写操作的用户
public = no  #不允许公共访问
printable = no
create mask = 0765
 
B.建立用户和组
新建用户
# useradd llk726
# useradd tge
然后我们使用smbpasswd -a 的命令将帐户分别添加到samba用户中
# smbpasswd -a llk726
# smbpasswd -a tge
 
C.建立相关目录并赋予相应权限
# mkdir /home/shared
# chmod 777 /home/shared
 
D.用testparm /etc/samba/smb.conf检测配置文档的配置有无语法错误
 
E.samba的启动和停止
#service smb start或/etc/rc.d/init.d/smb start
 
F.iptables的设置
#vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
 
2)高级配置(利用samba做pdc域服务器):
A.设置配置文件内容
[global]
 
workgroup = lin.net
netbios name = pdcserver
server string = Samba PDC running %v
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
# 这里的workgroup = lin.net就代表lin.net域, netbios name = pdcserver表示这台服务器的netbios名,socket options选项设置控制 TCP/IP 性能。所显示的设置就可以与基于 Linux 的系统一起很好地工作了。
 
local master = yes //是否允许Samba参与子网上的本地主浏览器的竞选
os level = 64
domain master = yes
preferred master = yes
#domain master 选项是一个“开关”,通告 Samba 将成为主域控制器。(local master browser)是维护局域网机器列表的服务器被称为本地主浏览器。
 
security = user //这里我们还是使用user验证方式
encrypt passwords = yes
domain logons = yes //是否启用Samba作为域登陆服务器
log file = /var/log/samba/log.%m
log level = 2
max log size = 50
hosts allow = 127.0.0.1 192.168.100.0/255.255.255.0 //hosts allow表示那些网段可以访问你的服务器。
logon home = \\%L\%U\.profile //%L代表服务器的NetBIOS名称,%U发出请求客户机的用户名称
logon drive = z: //把用户主目录映射为本地z盘
logon path = \\%L\profiles\%U //保存客户端机器桌面配置信息的路径,profiles跟下面的[profiles]共享段对应
logon script = netlogon.bat //登陆脚本
#以上是漫游设置和登录脚本。
 
[profiles]
path = /home/samba/profiles
writeable = yes
browseable = no
create mask = 0765
directory mask = 0700
profile是用来存放每个登录用户的设置文件,方便用户以后登录可以从服务器读取以前的桌面设置。
 
[netlogon]
comment = Network Logon Service
path = /home/netlogon
read only = yes
share modes = no
browseable = no
write list= root
netlogon是用来存放登录脚本的,所以要限制写的权限,假设这里只有root用户可以有权限。
 
[homes]
comment = Home Directories
browseable = no
writeable = yes
 
B.samba用户设置
#groupadd admin
#groupadd machines
 
手工添加机器帐号
比如我的客户端的机器名是client-a,那么我们可以这么做
#useradd -g machines -d /dev/null -c "machine id" -s /bin/false –M client-a$ passwd -l client-a$
输入两遍密码;
不要忘记标上美元符号;这是必需的,它将该项标识为信任帐户。
创建 linux 帐户后,我们现在可以将该机器添加到 /etc/samba/smbpasswd
#smbpasswd -a -m client-a
 
当然你也可以让系统自动添加机器帐号,用下面的方法,不过大家最好先试手动添加,成功后再试验系统自动添加。
自动添加只要在[global]添加
add user script = /usr/sbin/useradd "%u" -n -g users
add group script = /usr/sbin/groupadd "%g"
add machine script = /usr/sbin/useradd -n -g machines -c "Workstation (%u)" -M -d /dev/null-s /bin/false "%u"
delete user script = /usr/sbin/userdel "%u"
delete user from group script = /usr/sbin/userdel "%u" "%g"
delete group script = /usr/sbin/groupdel "%g"
 
添加用户帐号
首先添加的是root帐户,把root加入到smb帐户中
#smbpasswd -a root
这一步很重要,因为后面的加入域要用到有管理员的帐号加入域的权限,否则用普通用户好像不能顺利加入域。
然后添加普通用户
#useradd llk726
#passwd llk726
#smbpasswd -a llk726
为了方便以后的管理,最好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”。
 
C.域登陆目录设置
#mkdir -m 0775 /home/netlogon/scripts
#chown root.admins /home/netlogon
#mkdir /home/samba /home/samba/profiles
#chown 1757 /home/samba/profiles
#su –l llk726
#cd /home/samba/profiles
#mkdir llk726
 
D.DNS服务器配置,为lin.net域提供名称解析
 
E.启动服务
#service smb restart
 
Samba PDC 的配置就这样完成了。
剩下唯一要做的是将客户机加入到域中。
XP,2003加入域时必须先更改一下注册表:
在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]下新建一个DWord项:requiresignorseal,设置值为:0;如果已存在就修改一下值就行了。
 
现在,通过使用用户名 root 和相应的密码登录到域。必需初始化服务器和客户机机器之间的“秘密”。从此时起,任何已认证的用户都可以从这台机器登录。