Transcript 第9章SAMBA服务器
项目9: Samba服务器的配置与
管理
目标
掌握SMB的概念、工作原理
掌握Samba服务器的创建
掌握Samba服务器的管理
任务的提出
虽然Linux的出现带来了一场操作系统的革命,但是,不管我们身在
何处,还是能经常看到Windows的身影.毕竟Windows的GNU界
面漂亮,直观而且简单易用,很多人都喜欢用它.在一个局域网
中,Linux与Windows共存是常有的情况,那么如何实现它们之间
的互联呢?除了用FTP/Telnet/NFS之外,在Linux上构架SMB服
务器恐怕是最佳的选择了
企业网里Windows机器如何使用Linux机上的打印机?
企业网里Linux机如何使用Windows机器上的文件?
企业需求
企业需求:构建一台 Samba 服务器,为企业局域网中的
计算机提供文件和打印机共享。要求能够对不同的共享
资源设置不同的访问限制、日志记录。
认识Samba
认识Samba
Samba是一组软件包,使Linux支持SMB协议,是一套让
Linux系统能够应用Microsoft网络通讯协议的软件。它使
执行Linux系统的机器能与执行Windows系统的计算机进
行文件与打印机共享。
在Linux的中,可以通过Samba服务器向网络中的机器
提供共享文件系统,也可以把网络中其它机器的共享挂载
在本地机上使用,这在一定意义上说和FTP是不一样的。
Samba的核心是SMB协议
认识Samba
Samba的主要功能
提供Windows操作系统风格的文件和打印机共享 Windows
2000、Windows XP、Windows 2003等以据此共享Linux等其
他操作系统的资源,外表看起来和共享Windows资源没有区别,
并支持Windows客户使用网上邻居浏览网络。
提供SMB客户功能:利用Samba提供的smbclient程序可以从
Linux下以类似于 FTP的方式访问Windows的资源。
备份PC上的资源:利用一个叫smbtar的shell 脚本,可以使用
tar 格式备份和恢复一台远程 Windows上的共享文件。
提供一个命令行工具,在其上可以有限制地支持NT的某些管
理功能。
认识Samba
Samba的组成
完整的Samba由客户机和服务器组成,包含两个守护进程:smbd和
nmbd。
Smbd具有建立对话、验证客户、提供文件系统服务、提供打印服务的
作用
Nmbd的主要功能是实现网络浏览
Samba的安装
• RHEL Server 5 默认不安装Samba,执行如
下命令:
• #rpm –qa|grep samba
• 安装Samba服务器相关软件包的rpm命令,如
下所示:
Samba服务器的配置
Samba服务器的配置文件在/etc/samba目录中,包括
lmhosts、smb.conf、smbusers这3个文件。
/etc/samba/lmhosts提供了局域网内主机的
NetBIOS(Network Basic Input Output System,网络基
本输入输出系统)名与IP地址的对应。
/etc/samba/smbusers则提供了外部登录名与本地用户
名的映射关系。
/etc/samba/smb.conf是samba服务器的主要配置文件,
它定义了服务器提供服务的各种行为。
Samba服务器的配置
Samba的命令行配置
•
Smb.conf文件是Samba服务器主要配置文件,它
通过分段设置来管理不同的共享资源。
• 它的默认设置如图所示:
定义Samba服务器的全局参数
定义共享用户主目录
定义打印机共享
[自定义目录名]段:定义用户自定义的共享目录。
案例一
•
•
例如:架设共享级别的Samba服务器,所有用户都
可以访问/test目录,当前工作组为testgroup。
1.编辑/etc/samba/smb.conf文件如图所示:
设置工作组的名称
设置共享级别
设置共享资源的目录
指定共享资源的可写性
表示是否允许用户不用帐号和密码便能访问此共享资源
案例一
• 2、利用testparm命令测试配置文件
是否正确,如图所示:
案例
一
•
3、启动Samba服务器
•
4、建立共享的目录/test,并放置文本文件
hello.txt
•
•
5、测试Samba服务器
在Windows计算机的桌面上双击网上邻居
案例
一
[global]中的配置参
数
• workgroup
• 这个参数用来指定samba所要加入的
工作组,另外如果在设置了
security=domain,则workgroup
可以指定域名。例如:workgroup =
wgp1 指明工作组为wgp1。
[global]中的配置参数
• security
定义了samba的基本安全级,通常是 user。
•
security = user (用户)
这是samba的默认配置,这种情况下要求用户在访问共享资源
之前资源必须先提供用户名和密码进行验证。
•
securtiy = share (共享)
这是几乎没有安全性的级别,任何用户都可以不要用户名和口令
访问服务器上的资源。
•
security = server (服务器)
和user安全级类似,但用户名和密码是递交到另外一个服务器去
验证,比如递交给一台NT服务器。如果递交失败,就退到user安
全级,从用户端看来,server和user这两个级别是没什么分别的。
•
security = domain (域)
这种安全级别要求网络上存在一台NT PDC,samba把用户名
和密码递交给NT PDC去验证。
•
security = ads(活动目录域)
这种安全级别samba服务器不验证用户名和密码,而由活动目
录域服务器来负责。同样需要制定活动目录域服务器的NetBIOS
名称。
[global]中的配置参
数
• host allow
说明:这个参数指定哪些机器可以访问Samba,
如:
host allow=192.168.1.
指定192.168.1.0里的所有机器都可以访问
如果不允许子网中的一台机器访问,设置如下:
host allow=192.168.1. EXCEPT
192.168.1.33
这表示允许192.168.1.0子网里除了
192.168.1.33机器以外的其他机器访问。
共享资源参数
常用的共享资源参数可出现在[homes]、[printers]以及用户自定义的
共享目录段,用以说明共享资源的属性。
•
comment
说明:就是对共享的描述,可以是任意的字符串。
例如:
comment = Share Stuff
•
path
说明:path是提供共享服务的路径 path=/test
•
read only
说明:指定共享目录是否只可读
•
writeable
说明:指定共享路径是否可以写,值是yes或no,默认为no(与read
only参数有些抵触,如果READ ONLY为NO,而WRIEABLE
为NO时,谁在后面出现听谁的)
•
browseable
说明:指定共享是否可以浏览,默认是yes
•
available
说明:指定共享资源是否可用,默认是yes,设为no则关闭该资源的共
享服务,用户无法连接到该资源上。
共享资源参数
•
•
•
•
•
•
•
•
•
•
public
说明:这个参数指明是否允许guest帐户访问,值
为yes或no,另一个和public相同意义的参数是
guest ok。
only guest
说明:指定是否只允许guest帐号访问
printable
说明:指定是否允许打印
write list
说明:指定允许写的用户组
valid user
说明:指定是否允许访问共享目录的用户
添加Samba用户
• 利用smbpasswd命令可以添加Samba用户
并设置其口令
• 格式:smbpasswd [选项] [用户名]
• 主要选项说明:
• -a 用户名 增加Samba用户
• -d 用户名 暂时锁定指定的Samba用户
• -e 用户名 解锁指定的Samba用户
• -n 用户名 设置指定的Samba用户无密码
• -x 用户名 删除Samba用户
添加Samba用户
• 添加一个名为xiaoli的Samba用户
案
例二
•
配置用户级别的Samba服务器,要求
用户xiaoli和xiaowang可利用
Samba服务器访问其主目录中的文件,
当前工作组testgroup
(1) Xiaoli已经被设置成为Samba用户,
用同样的方法将xiaowang也设置成
为Samba用户。
(2) 编辑Samba服务器配置文件
/etc/samba/smb.conf,如图所示:
案例
二
案例
二
(3) 利用testparm命令验证配置文件是
否正确
案例
二
(4) 重新启动Samba服务
• [root@dns test] # service smb
restart
(5) 测试结果
从Windows客户机访问Samba服务
器
从Windows客户机访问Samba服务
器
1. 通过网上邻居直接找到Samba服务器
进行访问。
2. 映射网络驱动器
3. 在Windows资源管理器的地址栏或开
始菜单运行中,输入要访问的共享资源
的UNC路径进行访问。
4. 使用Windows搜索工具搜索要访问
Samba服务器
从Linux客户机访问Samba服务
器
• smbclient命令配合“-L”选项显示指定
samba服务器中的共享资源列表 -U可
以指定用户
例如:列出Samba服务器当前文件共享
情况
# smbclient –L 192.168.0.99 –U
aaa
从Linux客户机访问Samba服务
器
• 以用户aaa访问位于192.168.0.99上
的aabb共享目录
• # smbclient //192.168.0.99/aabb
–U aaa
• Password:
从Linux客户机访问Samba服务
器
•
•
•
•
•
•
•
•
•
•
常用的命令有:
ls
列目录
get
从服务器端下载单个文件
put
向服务器上传单个文件
mget 支持通配符,从服务器端下载多个文
件
mput 支持通配符,向服务器端上传多个文
件
mkdir 建立目录
rm
删除文件
lcd
查看或者修改本地工作目录
q
退出smbclient
案例三
• 配置用户级别的Samba服务器,要求
只有192.168.0.网段(除
192.168.0.20)的计算机才可以访问
Samba服务器,所有用户都可以访问其
个人主目录,只有用户aaa和bbb可以
访问目录/var/samba/aabb,工作组
为testgroup.
案例三
•
•
•
•
•
•
•
•
•
•
建立/var/samba/aabb共享文件夹,设置访问权限
[root@dns test] # mkdir –p
/var/samba/aabb
[root@dns test] # chmod 707
/var/samba/aabb
建立组和用户
[root@dns test] # useradd aaa
[root@dns test] # passwd aaa
[root@dns test] # useradd bbb
[root@dns test] # passwd bbb
[root@dns test] # smbpasswd –a aaa
[root@dns test] # smbpasswd –a bbb
案
例三
案例三
案
• 例三
重启服务
• # service smb restart
• 使用Windows客户端测试结果
作业
SAMBA服务器架设
要求:
(1)建立一个工作组smbgrp,本机审查用户帐号和密码。
(2)在机器上创建一个/root/tmp目录,为所有用户提供共享。
允许用户不用帐号和密码访问,且可以读写。
(3)在机器上创建一个私人目录/root/zspri,只有zs用户有共享访
问权限,其他用户不可以共享访问
(4)在机器上创建一个wl0708组,成员有zs和ls。创建一个
/root/wl0708目录,允许wl0708组用户向目录中写入,其他用
户只能访问,但不可以写入。
参考步骤
步骤1:在SAMBA服务器上检查并安装必要软件
查看:#rpm –qa | grep samba
安装:
#mount /dev/cdrom /mnt/cdrom/
#cd /mnt/cdrom/XXXXXX/RPMS/
#rpm –ivh samba-common-2.2.7a-7.0.9.0.i386.rpm
#rpm –ivh samba-client-2.2.7a-7.0.9.0.i386.rpm
#rpm –ivh samba-2.2.7a-7.0.9.0.i386.rpm
#cd;eject
参考步骤
步骤2:在SAMBA服务器上创建一个wl0708组,成员有zs
和ls。
#groupadd wl0708
#useradd zs –g wl
#passwd zs
#useradd ls –g wl
#passwd ls
步骤3:在SAMBA服务器上创建一个/root/tmp目录、/root/wl0708目
#mkdir /root/tmp
#chmod 777 /root/tmp
#mkdir /root/wl0708
#chmod 777 /root/wl0708
#mkdir /root/zspri
#chown zs /root/zspri
#chmod 755 /root/zspri
参考步骤
步骤4:vi smb.conf 文件,内容如下
在[global]段完成:
……
workgroup = smbgrp
#设置工作组的名称
server string = Samba Server
#指定服务信息
Netbios name = wwen
Security=user
guest ok =no
#不允许guest用户访问(没有口令)
参考步骤
共享用户主目录的设置,在[homes]段完成:
……
available = yes
#指定用户主目录这共享资源能否
可用
comment = Home Directories
browseable = no
#指定主目录不被其他用户浏览
writable = yes
#指定主目录的可写性
create mode = 0664
directory mode = 0775
#创建文件时的默认权限
#创建目录时的默认权限
参考步骤
在smb.conf文件中加一个[public]节
path = /root/tmp
#指定共享目录路径
comment = public
browseable = yes
#指定主目录能被其他用户浏览
writeable = yes
#共享文件目录的可写性
read only=no
#用户可以读写文件
guest ok = yes
#允许guest用户访问(没有口令)
create mode = 0664
#创建文件时的默认权限
参考步骤
在smb.conf文件中加一个[wl]节
path = /root/wl0708
#指定共享目录路径
comment = public wl
guest ok = yes
#允许guest用户访问(没有口令)
browseable = yes
#指定主目录能被其他用户浏览
read only=no
#用户可以读写文件
write list = @wl0708
#指定对共享资源有读写权的
组
参考步骤
在smb.conf文件中加一个[zspri]节
path = /root/zspri
#指定共享目录路径
comment = zs’s directory
valid users=zs
#指定有效用户zs
public=no
writeable = yes
#共享文件目录的可写性
存盘退出。
参考步骤
步骤5:测试samba配置文件的设置
#testparm
步骤6:启动Samba
使用以下命令来启动samba服务器
# /etc/rc.d/init.d/smb start
或: #service smb start
使用以下命令来重新启动samba服务器
# /etc/rc.d/init.d/smb restart
参考步骤
步骤7:添加Samba用户,Samba服务器要求合法的Samba
用户必须先是一个Linux用户
#smbadduser zs:zs
Smbpasswd –a zs
步骤8:创建好共享资源后,网络用户就可以在网上邻居看
到该共享资源了