1、安装启动samba
[root@test1 ~]# yum install -y samba samba-commonsamba-clientsamba-swat
[root@test1 ~]# service smb start
Starting SMB services: [ OK ] Starting NMB services: [ OK ]smb 是Samba 的主要启动服务,让其它机器能知道此机器共享了什么;而nmb是做解析用的,就是把这台 Linux机器所共享的工作组及在此工作组下NetBios的解析出来。[root@test1 ~]# netstat -antup|grep smb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 12774/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 12774/smbd samba监听两个端口139和4452,samba服务器配置文件
全局设置:
# ----------------------- Network Related Options -------------------------
workgroup = MYGROUP
server string = Samba Server Version %v
netbios name = MYSERVER
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow = 127. 192.168.87. 192.168.13.
workgroup:设置Samba服务器所在的工作组或所在域的名称,默认设置工作组名称为"MYGROUP"。
server string:设置Samba服务器的说明文字,用于描述Samba服务器,其默认值为Samba Server Version %v,其中%v是Samba服务器预设变量,表示当前Samba版本。由于目前不少Samba发行版本中存在一些已知的安全漏洞,所以不推荐使用该变量让客户端访问时获得有关Samba版本的信息。
netbios name:设置Samba服务器的NetBIOS名。
interface:设置允许Samba服务侦听的本地网络接口。比如Samba服务器有多个网络接口时可通过此参数指定只接受指定接口的SMB/CIFS请求,该参数默认没有启用(被注释)。在编辑该参数时当使用interface时推荐保留lo(表示本地回环地址),在指定网络接口时,除了通过IP地址指定外,也可直接通过网络接口名。
bind interfaces only:当bind interfaces only=yes时,interface只对Samba服务器提供文件服务有效,对浏览服务的广播无效,也就是说Windows客户端可以在网上邻居中查看到Samba服务器,但不能访问。该参数默认为bind interfaces only =no。
这里可以设置允许访问的网络和主机IP,比如允许192.168.1.0/24和192.168.2.1/32访问, 就用host allow = 192.168.1. 192.168.2.1 127.0.0.1(网络注意后面加”.”号,各个项 目间用空格隔开,记得把本机也加进去)
# --------------------------- Logging Options -----------------------------
log file = /var/log/samba/%m.log
max log size = 50
# ----------------------- Standalone Server Options ------------------------
security = user passdb backend = tdbsam在Standalone Server Options、Domain Members Options、Domain Controller Options三部分均需要配置合适的security(安全级别,用于配置Samba服务器的认证方式)、passdb backend用户密码存放方式,其中security可用参数包括share(可匿名方式访问Samba服务器共享资源,该方式只对Windows客户端有效,一般不推荐使用)、user(访问Samba服务器共享资源需要输入用户密码,认证用户来源为本机)、server(访问Samba服务器共享资源需要输入用户密码,认证用户来源为另一台Samba服务器或Windows服务器)、domain(如果Samba服务器在一个基于Windows NT 平台的Windows域中,访问共享资源需要输入用户密码,认证用户来源为Windows域)ads(如果Samba服务器在一个基于Windows200x平台的Windows活动目录中,访问共享资源需要输入用户密码,认证用户来源为Windows活动目录)。passdb backend常见可用参数包括smbpasswd(该方式是使用Samba提供的工具smbpasswd来给系统用户设置一个Samba密码,客户端就用这个密码来访问Samba的资源,如果使用此方式还需加一个smb passwd file = /etc/samba/smbpasswd用于指定保存用户密码文件,该文件需要手动建立,不推荐使用这种方法)、tdbsam(该方式则是使用一个数据库文件来建立用户数据库。数据库文件名为passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd来建立Samba用户)、ldapsam(该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务)、mysql(该方式则是将Samba服务器用户密码估计到mysql数据库中)
security:在此部分中该参数只能设置为share(不推荐)、user或server(不推荐),当该参数设置为share时,客户端连接到Samba服务器可不需要输入用户密码,但能不能访问某个共享资源还要根据共享资源中是否允许匿名用户访问决定。
passdb backend:默认为tdbsam,一般不用修改,除非想使用老版本Samba服务器的smbpasswd文件方式。
# ----------------------- Domain Members Options ------------------------
; security = domain ; passdb backend = tdbsam ; realm = MY_REALM ; password server = <NT-Server-Name>① security:在此部分中该参数只能设置为domain、ads。
② passdb backend:默认为tdbsam,一般不用修改。
③ password server:指定进行身份验证的域控制器IP地址或主机名。
# ----------------------- Domain Controller Options ------------------------
; security = user ; passdb backend = tdbsam ; domain master = yes ; domain logons = yessecurity:在此部分中该参数只能设置为user。
passdb backend:默认为tdbsam,一般不用修改。
domain master:让Samba作为主域控制器(PDC),在此部分此参数必须为yes。
提示:主域控制器(PDC)是一个Windows NT平台的概念,在Windows 2000 Server(或Windows Server 2003)活动目录中由活动目录是名为PDC模拟器的操作主机代替,其主要功能包括管理来自客户端(Windows NT/95/98)的密码更改、最小化密码变化的复制等待时间、同步整个域内所有域控制器上的时间、收集分发活动目录中主浏览服务器列表信息。
domain logons:允许旧的Windows客户端提交验证信息,只网络环境中在Windows 9x客户端,此参数必须为yes。
logon script:当用户登录到域时执行的启动脚本(相当于Windows组策略中用户开机脚本)。
logon path:当用户登录到域后的配置文件存放位置,用这个来初始化工作环境(相当于Windows中漫游配置文件)。
logon script:域中客户端主机的开机启动脚本(相当于Windows组策略中计算机开机脚本)。
add user script:指定Windows与Linux中用户信息同步脚本,当Windows域中新建用户后指定脚本会将该用户的信息复制到Linux中。
add group script:指定Windows与Linux中组信息同步脚本,当Windows域中新建组后指定脚本会将该组信息复制到Linux中。
add machine script:指定Windows与Linux中计算机信息同步脚本,当Windows域中新加入域中后指定脚本后会将该计算机信息复制到Linux中。
delete user script:指定Windows与Linux中用户信息同步脚本,当Windows域中删除用户后指定脚本后会将该用户的信息复制到Linux中。
delete user from group script:指定Windows与Linux中用户信息同步脚本,当Windows域中将用户从组中删除后指定脚本会将该信息复制到Linux中。
delete group script:指定Windows与Linux中用户信息同步脚本,当Windows域中删除组后指定脚本会将该组的信息复制到Linux中。
# ----------------------- Browser Control Options ----------------------------
local master:是否允许Samba服务器作为主浏览服务器。
os level:该数字越大被选举成为主浏览服务器的可能性越高。
preferred master:当yes时被选为主浏览服务器的可能性越高。
#----------------------------- Name Resolution -------------------------------
; wins support = yes ; wins server = w.x.y.z ; wins proxy = yes ; dns proxy = yeswins support:设置nmbd进程支持WINS服务器。
wins server:设置WINS服务器IP地址。
wins proxy:Samba服务器是否可作为WINS 代理。
提示:WINS代理就是为了解决跨网段的非WINS客户端与WINS客户端的NetBIOS名称解析问题。如图6-12所示所示内容中WINS代理在接收到非WINS客户端NetBIOS名称解析请求后,以单播的方式帮助非WINS客户端进行NetBIOS名称解析。当然WINS代理首先必须是一台WINS客户端。
dns proxy:Samba服务器是否在无法联系WINS服务器时通过DNS去解析主机的NetBIOS名。
name cache timeout:设置Samba服务器解析主机名缓存的保存时间,单位是秒。该参数默认值为name cache timeout=660。
# --------------------------- Filesystem Options ---------------------------
Filesystem Options:该部分包括Samba服务器如何保留从Windows客户端复制或移动到Samba服务器共享目录文件的Windows文件属性的相关配置,
map archive:当Windows客户端将文件复制或移动到Samba服务器共享目录时,是否保留文件在Windows中的存档属性。当map archive =yes时,将保留;当map archive =no时,将不保留。默认为map archive =yes。不过如果store dos attributes=yes时,Samba服务器将忽略该参数的设置。
map hidden:当Windows客户端将文件复制或移动到Samba服务器共享目录时,是否保留文件在Windows中的隐藏文件属性。当map hidden =yes时,将保留;当map hidden =no时,将不保留。该参数没有默认值,也就是在不设置该参数时,是否保留隐藏文件属性根据store dos attributes的值决定。
map read only:当Windows客户端将文件复制或移动到Samba服务器共享目录时,是否保留文件在Windows中的只读属性。当map read only=yes时,将保留;当map read only=no时,将不保留。默认为map read only=yes。不过如果store dos attributes=yes时,Samba服务器将忽略该参数的设置。
map system:当Windows客户端将文件复制或移动到Samba服务器共享目录时,是否保留文件在Windows中的系统文件属性。当map system =yes时,将保留;当map system =no时,将不保留。默认为map system =no。不过如果store dos attributes=yes时,Samba服务器将忽略该参数的设置。
store dos attributes:当Windows客户端将文件复制或移动到Samba服务器共享目录时,是否保留文件在Windows中的相关属性(只读文件、系统文件、隐藏文件、存档属性)。当store dos attributes =yes时,将保留;当store dos attributes =no时,将不保留。默认为store dos attributes =no。
#============================ Share Definitions ==============================
该部分主要涉及Samba服务器需要共享的资源
Samba配置共享目录的语法如下。
[共享名]
comment = 描述
path = 本地目录路径
①:客户端访问Samba服务器时浏览到的目录名,该名称不要求与本地目录名相同,但在当前Samba服务器必须惟一。
②:客户端访问Samba服务器时浏览到的目录描述信息,该参数不是必须的。
③:需要共享的本地目录,必须使用绝对路径
下面通过一个例子来看一下使用Samba服务器共享目录的方法。
(1)在根目录下建立一个名为test的目录。
(2)在文件/etc/samba/smb.conf尾部加入如下内容。
-
[smbtest]
-
comment = This is smb test
-
path = /test
[test]
comment = this is test path = /os/test browseable = yes writable = yes valid users = test[root@test1 ~]# useradd -M test -s /sbin/nologin
[root@test1 ~]# smbpasswd -a test New SMB password: Retype new SMB password: Added user test. [root@test1 ~]# chown -R test /os/test [root@test1 ~]# chmod 777 /os -R