510 likes | 759 Views
项目 9 : Samba 服务器的配置与管理. 目标. 掌握 SMB 的概念、工作原理 掌握 Samba 服务器的创建 掌握 Samba 服务器的管理. 任务的提出.
E N D
目标 • 掌握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服务器 • 通过网上邻居直接找到Samba服务器进行访问。 • 映射网络驱动器 • 在Windows资源管理器的地址栏或开始菜单运行中,输入要访问的共享资源的UNC路径进行访问。 • 使用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目录和/root/zspri目录。 #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:创建好共享资源后,网络用户就可以在网上邻居看到该共享资源了