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:创建好共享资源后,网络用户就可以在网上邻居看 到该共享资源了