1
、SAMBA的安装。
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
然后进入samba-3.0.21c目录下,在这个目录中有一个whatsnew.txt的文件,这个文件记录了samba-3.0.21c版本比以前几个版本修正的错误,如果英文不成问题的情况下,建议看看.在此不在赘述,然后直接进入source目录下准备编译。
# cd samba-3.0.21c
# cd 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
这样就可以创建二进制程序和手册页了,然后再执行make install
# make install
这样就将安装文件安装完了
完成后如果没有 /etc/samba目录则自建一个,如果有就可直接vi /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的设置
-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
//
登陆脚本
#
以上是漫游设置和登录脚本。
[homes]
comment = Home Directories
browseable = no
writeable = yes
[profiles]
path = /home/samba/profiles
writeable = yes
browseable = no
create mask = 0765
directory mask = 0700
[netlogon]
comment = Network Logon Service
path = /home/netlogon
read only = yes
share modes = no
browseable = no
write list= root
其中profile是用来存放每个登录用户的设置文件,以便用户以后登录可以从服务器读取以前的桌面设置,netlogon是用来存放登录脚本的,所以要限制写的权限,假设这里只有root用户可以有权限。
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 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 start
# service smb start
Samba PDC
的配置就这样完成了。
剩下唯一要做的是将客户机加入到域中。
XP,2003加入域时必须先更改一下注册表:
在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]下新建一个DWord项:requiresignorseal,设置值为:0;如果已存在就修改一下值就行了。
现在,通过使用用户名 root 和相应的密码登录到域。必需初始化服务器和客户机机器之间的“秘密”。从此时起,任何已认证的用户都可以从这台机器登录。
转载于:https://blog.51cto.com/llk726/122045