Samba Server配置与使用
文档说明
本人初次研究Samba Server,难免出现谬误,请指正
联系作者:
E-Mail:yang119345@gmail.com
MSN:yang119345@msn.com
QQ:150272988
1. Samba简介
samba server的主要作用就是提供
linux和windows之间文件/打印机共享
注意:Windows端必须要安装tcp/ip协议,这样才能确保Linux,Windows之间用samba共享。
samba的包主要分为rpm和tarball包两种,以下我们以Fedora Core/RedHat linux的rpm包安装方式讲解
2. Fedora Core/RedHat linux的Samba套件主要分为4个包
samba daemon samba服务器的主软件包
samba-client samba客户端工具
samba-common samba相关的工具和库文件包
samba-swat samba本机基于web的图形化samba配置工具
3. 获得samba软件包
1. 官方网站下载samba
2. 系统安装盘中获得,光盘里面找找,一般在第一张光盘:)Fedora Core/RedHat linux
4. 安装
将所有samba相关的rpm包放入到同一个文件夹中
然后切换到root权限(用su切换)
#rpm -ivh samba*.rpm然后回车即可完成安装
安装好后检查软件包是否安装
#rpm -qa samba
如果安装了就会返回软件的包名,例如
# rpm -qa samba*
samba-common-3.0.10-1.4E.9
samba-3.0.10-1.4E.9
samba-client-3.0.10-1.4E.9
samba-swat-3.0.10-1.4E.9
以上仅供参考,具体显示的版本号,根据版本的不同有所区别:)
smbtree
作用:显示局域网中所有主机和目录列表
用法:smbtree [-b] [-D] [-U username%password]
例如:
#smbtree
Password:<----这里直接回车表示匿名访问
WORKGROUP
nmblookup
作用:显示一台主机的netbios的ip地址
用法:nmblookup 主机的netbios名
例如:
#nmblookup samba
querying samba on 192.168.2.255
192.168.2.2 samba<00>
smbclient
作用:显示/登陆局域网中的共享主机
用法:smbclient -L host -U username%passwd
smbclient //host/share
例如:
#smbclient -L 192.168.2.111 -U administrator #以管理员身份显示192.168.2.111 xp主机共享内容
Password:<--输入主机管理员密码回车
Domain=[MUSHROOM] ōS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
E$ Disk Default share
project Disk
IPC$ IPC Remote IPC
D$ Disk Default share
I$ Disk Default share
K$ Disk Default share
G$ Disk Default share
F$ Disk Default share
ADMIN$ Disk Remote Admin
H$ Disk Default share
C$ Disk Default share
session request to 192.168.2.111 failed (Called name not present)
session request to 192 failed (Called name not present)
Domain=[MUSHROOM] ōS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Server Comment
--------- -------
Workgroup Master
--------- -------
看到192.168.2.111主机存在一个project共享目录,那我们现在进入这个目录,如下命令
# smbclient //192.168.2.111/project administrator
Domain=[MUSHROOM] ōS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
. D 0 Mon Jun 12 14:02:28 2006
.. D 0 Mon Jun 12 14:02:28 2006
c D 0 Mon Jun 12 14:02:21 2006
vbs D 0 Mon Jun 12 14:02:26 2006
60023 blocks of size 262144. 9259 blocks available
注意出现smb:\>说明登陆成功了(风格比较象ftp),可以输入help命令查看smb客户端工具的命令集:)
输入q推出smb客户端。
smbmount
作用:远程挂载共享目录
用法:smbmount //host/share /mountpoint -o username=username%passwd
例如:要将192.168.2.111主机的project共享目录挂载到本机的/media/netshare(记得先创建此目录哦)下,命令如下
smbmount //192.168.2.111/project /media/netshare -o username=administrator%12345678
(当然用mount –t smbfs //192.168.2.111/project /media/netshare也可以)
呵呵,稍等就挂载好了。然后就能像访问本地目录一样访问了,ls /media/netshare看看.哈
如果要卸载共享目录那就用smbumount /mountpoint(umount /mountpoint也可以)即可
例如:卸载刚才挂载的目录smbumount /media/netshare回车就okey了。
smbtar
作用:远程打包共享主机中的文件
用法:smbtar -s server -u user -p password -x sharename -t output_file
例如:smbtar -s 192.168.2.111 -u administrator -p 12345678 -x project -t project.tar
如果成功会在当前目录下生成一个project.tar文件,用tar -tvf project.tar查看下tar包的内容。
huh~~
#tar -tvf project.tar
tar: Record size = 4 blocks
drwxr-xr-x 0/0 0 2006-06-12 14:02:21 ./c/
drwxr-xr-x 0/0 0 2006-06-12 14:02:26 ./vbs/
比较下里面的东西和你主机共享是否相同:)
注意:redhat linux 9光盘中提供的samba套件的smbtar有个bug,就是他不管你输入不输入用户名和密码他默认就是用匿名登陆的
这样照成如果一个共享目录匿名没有权限,那打包的时候打包文件大小为0kb。
解决方法:只要用编辑器打开/usr/bin/smbtar然后移动到该文件的倒数第二行,将里面的-N参数去掉即可。即:改为
eval $SMBCLIENT "'\\\\$server\\$service'" "'$password'" -U "'$username'" \
-E $log -D "'$cdcmd'" ${clientargs} \,然后保存退出即可。以后的版本貌似修复了这个bug :)
6. samba服务器配置
1. 用samba-swat工具,该工具提供了一个web界面来实现配置samba的配置非常简单,在此就不多介绍了。
51Testing软件测试网~J$^P5\5K1`51Testing软件测试网8]9~_
Gm\VK+|
如果输入http://localhost:901显示访问失败,那么可能没有打开swat,我们用编辑器打开/etc/xinetd.d/swat,如下
# default: off
# descrīption: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.
service swat
{
disable = yes(一定要将此处改为no)
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
修改完毕,保存退出,然后重新启动xinetd服务,service xinetd restart回车,即可:)
2. 手工配置/etc/samba/smb.conf文件
配置完后,需要保存配置文件,然后service smb restart才能生效配置J
1) 配置Smb.conf文件前准备
该文件分为三种类型的配置字段
[global] 全局参数设置,samba服务器配置文件的命脉所在
[home] 用户HOME目录共享配置
用户自定义字段 用户根据自己的需求配置的共享字段
以下是我的smb.conf文件内容中的global选项
注意:该配置文件包含两种注释,#和;,井号注释掉的是帮助信息,而分号注释掉的是个选项,去掉分号该选项可用
[global]
workgroup= vm #所处的域或者工作组名
netbiosname= SAMBA #netbios主机名
serverstring= Samba Server #主机的描述信息
security= SHARE#samba服务器的安全级别,常用有share/user/server三种安全级别
#share无需验证就能访问samba服务器
#user需要用户验证通过才能访问
#server需要用户验证才能访问,和user的区别就是,
它的认证信息保存在一个服务器上
#如果选择了server安全级别,要多加一个选项即
password server = <主机名/ip地址>
logfile= /var/log/samba/%m.log #samba服务器的访问日志,其中的%m是变量
表示netbios名,例如netbios名为mushroom的主机访问了本机的samba服务器,那么访问日志会保
存在/var/log/samba/mushroom.log,其他变量参数详见man smb.conf
;encrypt passwords= yes #加密密码
;smb passwd file= /etc/samba/smbpasswd #samba的用户帐号文件,存放帐号和
密码
;include= /etc/samba/smb.conf.%m#包含外部的配置文件,如果你对每个客户机设
置不同的配置选项的话,可使用此选项
;interfaces= 192.168.0.0/24
#设置samba工作的网络接口,注释
掉此项则工作在所有可用的网络接口
;name resolve order= wins lmhost bcast
#主机名解析顺序wins服务器->本机/etc/samba/lmhost文件->广播。
;wins support= yes
#支持使用wins服务器,wins服务器主要提供netbios名字服务
;wins server= 192.168.2.5
#存放主机名的wins服务器
maxlogsize= 50
#最大日志大小,单位是KB
socketoptions= TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
#这个选项用来设置客户端和samba服务器通信时的socket选项,比较复杂
#详细见man smb.conf中的socket options节选。
;printcapname= /etc/printcap #打印机配置文件
dnsproxy= No #dns代理服务器
;cupsoptions= raw #通用打印机系统配置
disablespoolss= yes #去除客户端访问的时候,显示的共享打印机目录
#其实samba的global选项非常多,以上只列出了常用的几个,更多详见man smb.conf文件
[homes]
comment= Home Directories #共享注释
writeable= yes #可写选项
browseable= No #可浏览选项
[printers]
comment= All Printers #共享注释
path= /var/spool/samba #共享路径
printable= Yes #可打印选项
browseable= No #可浏览选项
[test]
comment= Access to test directory
path= /test
public= yes
writeable= yes
guestok= yes
2) 访问控制
全局访问控制——控制本服务器所有的共享目录访问
[global]
Hosts deny = ALL
Hosts allow = 192.168.2. <-此处等号右面的书写规则详见
man 5 hosts_access中的PATTERNS节选,那里有明确的定义规则
#只允许192.168.2网段访问
局部访问控制——仅控制该字段内的的目录访问
[test]
Hosts deny = 192.168.2.
Hosts allow = 192.168.2.111
#test字段只允许192.168.2.111以及192.168.2网段以外的主机访问
如果要设置192.168.2网段中除了192.168.2.111主机其他都能访问,那设置如下
Hosts allow = 192.168.2. except 192.168.2.111
注意:如果以上规则deny和allow出现冲突时,allow优先于deny,全局优先于局部。
word原稿请到以下联接下载:)