第15章 配置Samba服务器 微软最有价值专家(MVP) IT集成课程视频教学下载地址 http://www.91xueit.com
本章内容 15.1Linux和Windows间资源共享 15.2Samba服务基础 15.3smb.conf主配置文件 15.4建立可匿名访问的文件共享 15.5建立带验证的文件共享 15.6为每个用户创建私人共享目录
15.1Linux和Windows间资源共享 不可否认微软的Windows操作系统布满了全球。在许多情况下,装有Linux操作系统的计算机要和Windows系统交流,彼此分享资源。本章介绍利用Samba让Ubuntu和Windows间共享资源。目前市场上有许多书专门探讨Samba,详细描述Samba配置的每一个细节。本章简单地介绍Samba的背景知识,以及如何在Ubuntu中安装与配置Samba让Windows用户访问Ubuntu上共享的目录和打印机。
SMB和CIFS协议 SMB(Server Message Block,又称Common Internet File System(CIFS))是由微软开发的一种软件程序级的网络传输协议,主要用来使得一个网络上的机器共享计算机文件、打印机、串行端口和通讯等资源。它也提供认证的行程间通讯机能。它主要用在装有Microsoft Windows的机器上,在这样的机器上被称为Microsoft Windows Network。 Samba项目是SMB/CIFS协议在Linux/Unix系统中的实现,能够实现跨平台的文件和打印机资源共享,适用于使用混合操作系统平台的企业环境
Samba,Linux与Windows共享资源的桥梁 Samba是种自由软件,用来让Linux操作系统与微软的Windows操作系统间共享资源。使用Samba目前的版本,不仅可以分享目录及打印机,还可以整合进入Windows服务器域,扮演域控制站的角色,以及成为Active Directory(活动目录)成员。简而言之,Samba在Linux与Windows之间搭起一座桥梁,让两者彼此分享资源。 Samba能够为选定的Linux目录(包括所有子目录)建立网络共享。该功能使得Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Linux目录。Samba也一样能行,如在一台Linux计算机上搭建了Samba后,其既充当共享服务器,也能作为客户机来访问其他Windows共享文件系统,或其他的Linux Samba服务器;
15.2Samba服务基础 Samba服务器的主要程序 Samba的服务脚本 Samba的配置目录及文件 smbd:提供对服务器中文件、打印资源的共享访问 nmbd:提供基于NetBIOS主机名称的解析 Samba的服务脚本 /etc/init.d/smb Samba的配置目录及文件 /etc/samba/ /etc/samba/smb.conf 通过smb服务脚本可以控制smbd、nmbd主程序的运行,而无需逐个手动控制这2个程序的运行 展示“/etc/samba/”配置目录,并指出主配置文件为 smb.conf
15.3smb.conf主配置文件 smb.conf文件的配置内容 辅助配置内容 [global]:全局设置 workgroup = MYGROUP server string = Samba Server security = user log file = /var/log/samba/%m.log …… [movies] comment = free movies browseable = no writable = yes [printers] smb.conf文件的配置内容 [global]:全局设置 [movies]:用户目录共享设置 [printers]:打印机共享设置 [myshare]:自定义名称的共享目录设置 辅助配置内容 注释行:以 # 号开头的行 配置样例行:以 ; 号开头的行 结合grep命令可以提取有效配置行 grep -v "^#" smb.conf | grep -v "^;" | grep -v ^$ 讲解smb.conf配置文件的内容组成,并结合实际配置文件展示配置行的基本格式 [global] 全局设置:这部分配置项的内容对整个Samba服务器有效 [homes] 用户目录共享设置:设置对应Samba用户宿主目录的默认共享,即当用户访问服务器中与自己用户名同名的共享文件夹时,默认会映射到自己的宿主目录 [printers] 打印机共享设置:如果需要共享打印机,则在这部分配置 在文件末尾用户可以自定义新的共享目录设置,自定义目录共享的名称可以随便起,其中的配置可以参考“[homes]”、“[printers]”中的部分配置项
smb.conf主配置文件 常见全局配置项的含义 workgroup:所在工作组名称 server string:服务器描述信息 security:安全级别,可用值如下: share、user、server、domain log file:日志文件位置,“%m”变量表示客户机地址 max log size:日志文件的最大容量,单位为KB 讲解workgroup、security等几个常见全局配置项的含义,可以结合实际文件进行展示讲解 重点解释security安全级别设置的几种类型,默认的级别为user workgroup 设置服务器所在的工作组名称,例如“WORKGROUP”(Windows主机默认工作组名) server string 设置服务器的说明文字,用于描述Samba服务器 security 设置服务器的安全级别,可设为以下4个值中的一个:share(可匿名访问)、user(需由本服务器验证用户名及密码)、server(由另一台服务器验证用户名及密码)、domain(由Windows域控制器验证用户名及密码) log file 设置Samba服务器的日志文件,默认设置为“/var/log/samba/%m.log”,表示日志文件保存到/var/log/samba/目录中,按每个客户机建立一个日志文件,“%m”变量表示客户端主机名或IP地址 max log size 设置日志文件的最大容量,默认为50,表示50KB(默认单位为KB)
smb.conf主配置文件 常见共享目录配置项的含义 comment:对共享目录的注释、说明信息 path:共享目录在服务器中对应的实际路径 browsable:该共享目录在“网上邻居”中是否可见 guest ok:是否允许所有人访问,等效于“public” writable:是否可写,与read only的作用相反 讲解comment、path、browseable等几个常见全局配置项的含义及用法,可以结合实际文件进行展示讲解 这些配置项在后边马上就会用到的,因此需要向学员详细解释清楚 控制Samba用户访问共享目录的读取、写入权限时,注意要满足一个前提条件,即与该Samba用户同名的系统用户对服务器中的共享目录(如“/var/public/movies”)也必须有相应的读取、写入权限 comment 设置对应共享目录的注释、说明信息 path 设置对应共享目录在服务器中的文件夹路径 browseable 设置该共享目录在“网上邻居”中是否可见,设置为no时相当于隐藏共享目录 guest ok 设置共享目录是否所有人都可以访问,与public配置项作用相同 writable 设置该共享目录是否可写,与read only的作用相反 Samba服务设置的读取、写入权限,优先级要低于文件系统中设置的权限
15.4建立可匿名访问的文件共享 修改smb.conf配置文件 检查配置的正确性 启动smb服务 security = share [global] workgroup = WORKGROUP security = share [movie] comment = Public share with movie files path = /var/public/movies public = yes read only = yes [root@filesvr ~]# service smb start 启动 SMB 服务: [确定] 启动 NMB 服务: [确定] [root@filesvr ~]# netstat -anptu | grep mbd tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 8866/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 8866/smbd udp 0 0 192.168.168.1:137 0.0.0.0:* 8870/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 8870/nmbd udp 0 0 192.168.168.1:138 0.0.0.0:* 8870/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* 8870/nmbd 修改smb.conf配置文件 security = share public = yes 检查配置的正确性 testparm命令工具 启动smb服务 service smb start SMB协议 NetBIOS名称解析 CIFS协议 介绍使用Samba服务器添加匿名共享目录设置的过程 期间注意对相关配置项进行演示、testparm命令的使用 除了基本配置格式要注意以外,决定可匿名访问的主要包括2行: security = share public = yes 通过确认服务监听状态的过程,使学员熟悉Samba服务所使用的端口信息 NetBIOS数据报
15.5建立带验证的文件共享 在smb.conf文件设置用户访问授权 授权指定用户访问共享目录 [global] workgroup = WORKGROUP security = user [movie] comment = Public share with movie files path = /var/public/movies public = no read only = no valid users = vina, @root write list = root directory mask = 0744 create mask = 0600 在smb.conf文件设置用户访问授权 授权指定用户访问共享目录 valid users、write list配置项 用户列表:以逗号分隔,“@组名”表示一组用户 设置用户在共享目录中所创建文件、目录的默认权限 directory mask、create mask配置项 权限表示:目录、文件权限的数字组合形式,如0744 讲解为共享目录设置用户访问授权的相关配置项及其用法 需要授权多个用户时以空格或逗号分隔,注意不要使用帐户别名,而应使用实际的Samba用户名。授权一个用户组时使用“@组名”的形式,组内的每个用户都需要有对应的Samba用户 设置目录权限掩码时,“0744”中的第一位“0”表示后边的是八进制(Octal)数值
15.6建立带验证的文件共享 在smb.conf文件设置客户机访问授权 一般用在全局配置[global]部分 hosts allow配置项:仅允许特定的客户机 hosts deny配置项:仅拒绝特定的客户机 客户机地址表示形式: 以空格分隔多个地址 主机名或IP地址,例如: 192.168.168.11 或者 prtsvr 网络地址,例如:173.17. 或者 173.17.0.0/255.255.0.0 简单讲解hosts allow、hosts deny配置项的作用和使用方法,两种配置项不要同时使用 [global] …… hosts allow = 192.168.1. 192.168.2. 127.
在客户机中访问共享目录 使用Windows客户端访问文件共享服务 使用Linux客户端访问文件共享服务 网上邻居、UNC路径 smbclient命令,查看及登录使用共享 smbclient -L 192.168.168.1 smbclient -U vina //192.168.168.1/movie mount命令,将共享目录挂载到本地使用 mount -o username=vina //192.168.168.1/movie /mnt 讲解在客户机中如何访问其他主机提供的共享资源,重点在于smbclient和mount命令的使用 访问Samba共享资源时,使用的用户名可以是Samba帐号,也可以是对应的别名(smbuser文件中定义的映射名) 对两种共享访问使用方式进行操作演示,同时可以验证前面设置的读写权限限制等
为每个用户创建私人共享目录 在每个ubuntu服务器上的用户的主目录下创建一个文件夹 personal。 把该ubuntu用户添加为samba用户 更改samba配置文件,共享主目录 [homes] browseable = no guest ok = no read only = no 在Windows上创建镜像账户,使用镜像账户登录Windows,访问samba服务器的共享资源。
总结 15.1Linux和Windows间资源共享 15.2Samba服务基础 15.3smb.conf主配置文件 15.4建立可匿名访问的文件共享 15.5建立带验证的文件共享 15.6为每个用户创建私人共享目录