基于RHEL5的Samba服务器教学研究

时间:2022-08-17 02:03:34

基于RHEL5的Samba服务器教学研究

[文献标识码] A [文章编号] 10084738(2012)04009903

1 Samba服务器简介

Samba基于SMB ( Server Message Block)协议[1] [2],可实现Unix/Linux系统和Windows系统之间互相通信及共享资源的安全。功能包括:文件和打印机共享、身份验证和权限设置、名称解析、浏览服务。对应这些功能,Samba服务会开启两个服务:smbd和nmbd。

2 Samba服务器设置

RHEL5中默认安装两个软件包:sambacommon、sambaclient。Samba服务器端要安装另两个软件包:samba、sambaswat。其中sambaswat依赖于xinetd包,要先安装。教学中要说明软件之间的依赖关系对安装和卸载顺序的影响。

主配置文件/etc/samba/smb.conf中可以指定共享的目录和打印机等资源。该文件主要由三部分组成:注释和范例部分、Global Settings和Share Definitions。

(1)注释部分以“#” 开头,范例部分以“;”开头,分别提供说明和参考,并不生效。

(2)Global Settings 部分以[global]开始,设置的是全局变量。Samba提供五种安全模式(share、user、server、domain和ads)[3]。在教学中,重点讲解share和user模式。share模式中,共享目录一般只给予较低权限,客户端可实现匿名访问。User模式要求客户端提交合法的帐号和密码,这也是默认的级别[4]。

(3)Share Definitions部分设置共享对象和共享的权限。

在教学过程中,分别以share级别和user级别案例讲解。基本配置比较简单(基本的配置方法这里不再举例),但在客户端测试时,往往会出现一些问题。教师要引导学生对实验过程中遇到的问题进行归纳分析。

3 教学过程中可能遇到的问题分析

对于Samba服务器的教学,建议以项目为导向要求学生完成一个典型的企业文件服务器案例。教学提供的初始实验环境是一样的,但学生在操作时会出现不同的情况。例如虚拟环境下,系统安装时规划的内存和硬盘的大小一样,但伴随着软件的安装,可能会出现提示空间不够的问题。这时就要有选择地卸载不需要的软件包以释放足够的空间。

在讲解服务器内容时,选取“以具体项目为导向”的教学方法,培养学生从设计、安装、测试到验收的基本技能。在配置Samba服务器时,学生搭建的网络环境以及对命令的掌握情况也会影响到共享目录真正提供的权限。下面是实际教学中出现的几个问题。

3.1 对于Samba服务器提供的共享目录,用户权限的依据

某用户对共享目录的权限会受到多方面的影响。首先是Samba中对该目录的权限设置。其次是系统中目录本身赋予该用户的权限。

例如,创建的共享目录/test后,在samba.conf中对/test目录赋予某用户写的权限。方法可以采用多种形式,如:

writable = yes 或readonly = no 或write list = 用户名或write list = @组名

但检测时该普通用户对/test可能仍没有写的权限。要检查目录本身的权限设置。

# ls ld /test

drwxrxrx 2 root root 4096 0327 15:27 /test

这里显示对于普通用户,只有读和执行的权限。因此要通过chmod 命令(如:chmod 777 /test)赋予相应的写权限。此时重新加载smb服务,再验证用户是否能真正进行写的操作。默认情况下,用户此时只能进行“上传”操作,不能进行修改、删除、改名等操作。这是因为RHEL5默认采用selinux,即强制存取控制(在/etc/selinux/config文件中selinux=enfocing)。这时需要通过关闭selinux(修改为selinux=disabled并重启系统)或修改对象的安全来放开“写”权限。胡兰兰:基于RHEL5的Samba服务器教学研究十堰职业技术学院学报 2012年第4期 第25卷第4期

3.2 Samba用户与普通用户的关系

在user模式中,客户端需要提交Samba帐号和密码,通过验证后才能访问Samba服务器中的共享目录。服务器的普通用户不一定是Samba用户,但Samba用户必需是普通用户。即先建立相应名称的普通用户,再把该用户指定为Samba用户。两种用户身份要分别设置密码,建议设置不同的密码。

Samba服务器端删除对应Samba帐号的普通用户后,Samba帐号不再可用。

3.3 Samba的安全问题

Samba用户名保存在/etc/samba/smbpasswd中。3.2中显示,Samba用户名对应Samba服务器中的普通用户名。从安全角度考虑,客户端只要破解密码就可实现登录访问,这对于服务器来说并不安全。通过用户帐号映射(/etc/samba/smbusers文件)的方法创建虚拟帐号,可以对Samba服务器中的用户名进行保护。对客户端只要提供虚拟帐号和密码即可。

共享目录的名称对于一些普通帐号也是要保密的。设置共享目录的browseable = no可将目录隐藏,但并不关闭共享。用户可通过在地址后输入目录名(如:192.168.18.1/test)来访问。

对于特殊帐号,若不想让他去记共享目录名,只需要单独为他建立一个配置文件(如:/etc/samba/smb.conf.teacher),该配置文件可以在复制系统的smb.conf后对共享目录做选项的修改。主要是去除其中的browseable = no(或用browseable = yes),且保证security设为user。同时在主配置文件smb.conf的[global]中加入一行配置文件信息:config file = /etc/samba/smb.conf.%U。%U表示当前登录用户,%U的位置由单独配置文件名中用户名所在位置决定。若配置文件名为/etc/samba/teacher.smb.conf,则要设置config file = /etc/samba/%U.smb.conf。

上一篇:坚守的美丽 下一篇:教育是一种等待