Samba的全名为Server Message Block(服务信息块),samba软件整合了SMB协议及Netbios的应用程序接口协议,使其运行在TCP/IP上 。它是一套程序,支持基于UNIX的主机与基于WINDOWS主机的主机共享文件和打印。samba能提供稳定的文件和打印服务,在异构的网络中实现资源共享,
samba的核心:
samba的核心有两个守护进程,即smbd与nmbd。服务器启动到停止期间持续进行,smbd监听139 tcp端口,nmbd监听137和138udp端口.smbd与nmbd使用的全部配置信息保存在smb.conf文件中,sam.conf文件告诉smbd和nmbd两个守护进程说明输出什么、共享输出给谁及如何输出以便共享。smbd 进程的作用是处理来的smb数据包,为使该数据包的资源与linux协商;nmbd进程,使其他主机能浏览LINUX服务器。
[root@dns ~]# rpm -ivh /home/cdsrc/Server/system-config-samba-1.2.41-5.el5.noarch.rpm
Preparing... ########################################### [100%]
1:system-config-samba ########################################### [100%]
[root@dns ~]# rpm -qa |grep samba
samba-common-3.0.33-3.14.el5
samba-3.0.33-3.14.el5
system-config-samba-1.2.41-5.el5
samba-client-3.0.33-3.14.el5
samba-swat-3.0.33-3.14.el5
[root@dns ~]# cd /etc/samba/
[root@dns ~]#
[root@dns samba]# ll
总计 28
-rw-r--r-- 1 root root 20 2009-05-29 lmhosts
-rw-r--r-- 1 root root 9733 2009-05-29 smb.conf
-rw-r--r-- 1 root root 97 2009-05-29 smbusers
第二步、配置smb.conf文件
samba的主配置文件是/etc/samba/smb.conf,共288行,文件被分隔成若干节,每一节都有一个被方括号括起来的标志开始如[global]、 [home]和 [printers]。global部分定义的参数用来控制samba的总特性,除该部分外,每一部分都定义了一个专门的服务,我们只需要改动一小部分就能配置一个基本的samba服务器了。
[root@dns samba]# grep -v '^#' /etc/samba/smb.conf |grep -v '^$' |grep -v '^;'
可以看到基本的默认配置;
#======================= Global Settings =================
[global]
# ------------- Network Related Options ----------------
#这是设置服务器所要加入的工作组的名称,会在windows的“网上邻居”中看到
可以在此设置所需要的工作的名称
workgroup = MYGROUP
#这是设置服务器主机的说明信息
server string = Samba Server Version %v
#设置出现在“网上邻居”中的主机名,默认情况下使用真正的主机名
; netbios name = MYSERVER
#samba网路地址接口,配置samba来使用多个网络界面
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
#设置允许什么样的IP地址访问samba服务器,默认情况下被注释掉,表示
允许所有的IP的主机访问
; hosts allow = 127. 192.168.12. 192.168.13.
注意,关于samba服务的IP的表示方法有点特殊
127.0.0.0写成127.
192.168.12.0写成192.168.12.
只需要写出网络位,主机位省略,然后以点结尾
# ------------------- Logging Options ----------------------
# logs split per machine
#设置文件路径,这个选项要求为每一台连接的机器使用一个单独的日志文件,指定
文件位置名称,samba会自动将%m转换成连接主机的netbios名
; log file = /var/log/samba/%m.log
# max 50KB per log file, then rotate
#指定日志文件的最大容量以KB为单位
; max log size = 50
# ------------ Standalone Server Options ---------------
security = user
passdb backend = tdbsam
# ---------- Domain Members Options -------------
; security = domain
; passdb backend = tdbsam
; realm = MY_REALM
; password server = <NT-Server-Name>
# ----------------- Domain Controller Options ---------------
#
Samba
的安全模式
; security = user
关于
samba
的五种安全模式
Share
允许匿名访问
User
需要用户名和密码认证,认证信息来自于
samba
服务本身
Domain
认证来自于网络中另一天计算机
Server
和
domain
一样
Ads
使用微软的
AD
来认证
; passdb backend = tdbsam
#将samba服务器定义为主浏览器,此选项将允许samba在子网列表中比较浏览,如果有winNT域控则不使用此项,
; domain master = yes
; domain logons = yes
# the login script name depends on the machine name
; logon script = %m.bat
# the login script name depends on the unix user used
; logon script = %u.bat
; logon path = \\%L\Profiles\%u
# disables profiles support by specifing an empty path
; logon path =
#添加用户的命令脚本
; add user script = /usr/sbin/useradd "%u" -n -g users
; add group script = /usr/sbin/groupadd "%g"
; add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -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"
# --------------- Browser Control Options ------------------
#浏览控制选项,如果不使用samba服务器成为局域网的主浏览服务器,将此设置为No
; local master = no
#决定该服务器在局域网内部的访问优先权
; os level = 33
#使samba启动时选择一个本地浏览器,并给它获得选择较高的机会
; preferred master = yes
#----------------------Name Resolution ----------------------
#wins设置,samba既可以做为wins服务器也可以作为wins客户机,但不能兼之
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
#是否为客户做DNS查询
; dns proxy = yes
# ------------------ Printing Options ------------------------
#允许共享打印机,指定是否要加载打印机(使打印机共享),
load printers = yes
cups options = raw
#设置打印机配置文件路径,这是指定打印机配置文件的位置,打印守护进程读取
printcap文件中的配置信息,监视打印机的工作情况;
; printcap name = /etc/printcap
#obtain list of printers automatically on SystemV
; printcap name = lpstat
#设置打印机系统类型,只有在打印机系统不是标准的情况下,必须指定,否则不必指定;指定打印机的类型将影响到smb.conf文件中与打印机相关的命令
; printing = cups
# --------------------- Filesystem Options ----------------------
; map archive = no
; map hidden = no
; map read only = no
; map system = no
; store dos attributes = yes
Samba
里面的默认共享
#===================== Share Definitions ======================
#所有使用者的home目录
[homes]
#针对共享资源所作的说明
comment = Home Directories
#设置用户是否可以看到共享资源,默认的是不能,但拥有权限的用户仍可用绝对路径访问
browseable = no
#设置共享资源可否写入,如果是打印机则不需要设置
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
#打印机共享设置
[printers]
#配置打印机共享,所有用户都可以共享打印机;
comment = All Printers
#设置打印机队列位置,用户必须自行创建该目录,存放打印临时文件
path = /var/spool/samba
#设置是否允许浏览共享打印机
browseable = no
guest ok = no
writable = no
printable = yes
#是否允许用户更改打印机队列的文件;
# Un-comment the following and create the netlogon directory for Domain Logons
#netlogon共享管理工具,主要是用类似补丁杀毒程序更新客户端,netlogon是存放脚本你想推给客户机组的事情都可以通过netlogon来做
;
[netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
#用户profile文件部分,用来存放每个登录用的设置文件,以便用户以后可以从服务器#读取以前的桌面设置,
;
[Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes
关于
samba
服务参数的解释
;
[public]
共享目录共享出去的名字
; comment = Public Stuff
共享目录的绝对路径
; path = /home/samba
允许匿名用户访问共享目录
; public = yes
默认情况下,所有用户对该共享目录都有写的权限。
; writable = yes
默认不允许用户更改打印机队列的文件
; printable = no
只允许客户机对该目录有写入的权限的列表
; write list = +staff
下一节配置samba共享实例;