在RHEL5下构建Samba文件共享服务器

一.samba服服务的安装
  在RHEL5系统的安装光盘中,与samba相关的软件包有五个:
1.samba-3.0.23c-2.i386.rpm           //服务器程序文件
2.samba-client-3.0.33-3.14.el5.i386.rpm      //客户端程序文件
3.samba-common-3.0.33-3.14.el5.i386.rpm   //服务器和客户端的公共文件
4.samba-swat-3.0.33-3.14.el5.i386.rpm   //Web方式的管理工具
5.system-config-samba-1.2.41-5.el5.noarch.rpm     //图形界面管理程序(须要在X图形环境中使用)
要实现samba服务器和客户端的的基本功能,前三个软件包必须安装。
二.samba服务器的提供的服务
1.smbd:为客户机提供服务器中共享资源的访问,监听TCP协议的139端口(SMB)、445端口(CIFS);
2.nmbd:提供基于NetBios主机名称的解析,为Windos网络中的主机进行名称解析,监听UDP协议的137~138端口;
经过“/etct/init.d/smb”控制samba服务的启动与终止,无需单独运行smbd或nmbd。
三samba服务的配置文件
1.lmhosts:用来进行NETBIOS名静态解析。
2.passdb.tdb:用来存放samba帐户。
3.secrets.tdb:用来存放samba帐户密码。
4.smb.conf: samba服务主配置文件
5.smbusers:用户名映射文件
四.smb.conf文件经常使用配置项
workgroup:设置服务器所在的工做组名称,例如“WORKGRUOP”(windows主机默认工做组名)
server string:设置服务器的说明文字,用于描述samba服务器
cecurity:设置服务器的安全级别,可设为如下四个值中的一个:share(可匿名访问)、user(需由本服务器验证用户名及密码)、server(由另外一台服务器验证用户名及密码)、domain(由windows域控制器验证用户名及密码)
log file:设置samba服务器的日志文件,默认设置为“/var/log/samba/%m.log”,%m表示客户端主机名或IP地址
max log size:设置日志文件的最大容量,默认为50,表示50KB
comment:设置对应共享目录的注释、说明信息
path:设置对应共享目录在服务器中的文件夹路径
browseable:设置该共享目录在“网上邻居”中是否可见,设置为no时至关于隐藏共享目录
guest ok / public:设置是否全部人均可以访问共享目录
writable:设置该共享目录是否可写
read only:设置该共享目录是否只读
valid users:哪些用户能够访问共享目录
invalid users:哪些用户不能访问共享目录
write list:哪些用户有写入权限
read list:哪些用户只有读取权限
directory mask:设置共享目录中的写入的目录的权限
create mask:设置共享目录中的写入的文件的权限
force group:指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force user:指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
host allow:设置仅容许访问共享的网段或IP
host deny:设置仅拒绝访问共享的网段或IP
下面开始搭建samba文件共享服务器
实验环境:
根据公司的信息建设要求,须要在局域网内部搭建一台文件服务器,便于对于数据集中管理备份。考虑到服务器的运行效率及稳定、定全性,选择在RHEL5操做系统中构建samba服务器以提供文件资源共享服务。
需求描述:
1.在“/var/share/”目录中创建子目录public、training、devel,用途以下:
public目录用于存放公共数据,如公司的规章制度、员工手册、工做用表格等文件;
training目录用于存放公司的技术培训资料;
devel目录用于存放项目开发数据;
2.将“/var/share/public”目录共享为public,全部员工可匿名访问,可是只能读取文件,不能写入;
3.将“/var/share/training”目录共享为peixun,只容许管理员admin及技术部的员工只读访部;
4.将“/var/share/devel”目录共享为kaifa,技术部的员工均可以读取该目录中的文件,可是只有管理员admin及project项目组的员工有写入权限。
搭建此服务器的思路:
1.建立共享目录对应的文件夹:“/var/share/public”、“/var/share/training”、“/var/share/devel”,并设置相应权限。
2.创建相关系统组,用户并建立samba用户。
3.修改smb.conf配置文件,添加共享设置。
4.重启smb服务。
5.验证明验结果。
实验步骤:
1.在/var/sahre/目录下建立public、training、devel,分别设置权限为777(全部用户均有读取、写入、可执行权限),此时把权限设置最大没有关系,能够在cmb.conf文件中设置共享权限来进行限制(相似于windsow中的NTFS权限和共享权限设置),别外将/var/share/devel目录的改成project并增长粘滞位权限(devel权限为1777),以便实现有权限的用户在/var/share/devel目录中只能写入目录或文件,不能删除他人的目录或文件。最终设置以下:
 
2.创建相关系统组,用户(只用于访问samba文件服务器)并建立samba用户:
#groupadd tech                   //建立技术组(技术部员工)
#groupadd project              //建立项目组(项目组员工)
#useradd -M -g tech  lee       //建立系统用户lee并加入tech组,并不为其建立宿主目录
#useradd -M -g tech  tom       //建立系统用户tom并加入tech组,并不为其建立宿主目录
#useradd -M -g project  jarry       //建立系统用户jarry并加入project组,并不为其建立宿主目录
#useradd -M -g project  linda       //建立系统用户linda并加入project组,并不为其建立宿主目录
#smbpasswd -a lee                     //添加samba用户lee
#smbpasswd -a tom                   //添加samba用户tom
#smbpasswd -a jarry                  //添加samba用户jarry
#smbpasswd -a linda                //添加samba用户linda
#smbpasswd -a root                  //添加samba用户root
3.修改smbusers文件,配置用户映射,以提升用户安全性:
root = admin
lee = tech1
tom = tech 2
jarry = pro1
linda = pro2
4.修改smb.conf配置文件,进行共享目录的设置,通过配置文件检查工具:testparm命令检查后显示的配置清单以下(security设置为user):
5.重启samba服务:
service smb restart   或   /etc/init.d/smb restart
6.验证明验结果(使用windows客户机进行验证):
6.1.使用技术组用户tech1登陆,验证是否有访问全部共享目录的权限:(可访问全部共享目录)
 
6.2.使用项目组用户pro1登陆,验证是否只有访问public和kaifa共享目录在kaifa目录的写入权限:(验证成功!)
 
6.3.使用项目组用户pro2登陆,验证是否只有访问public和kaifa共享目录在kaifa目录的写入权限与粘滞位权限:(验证成功!)
6.4.另外还能够使用linux客户机进行验证(略),相关命令以下:
6.4.1.使用smbclient工具登陆samba服务器
smbclient -L  服务器IP/主机名            //查看samba服务器共享目录
smbclient -U 用户名   //服务器IP/共享目录       //以仿ftp客户端方式登陆访问samba服务器中的共享目录
6.4.2smbclient 命令说明                                                           
?或help [command]  : 提供关于帮助或某个命令的帮助
![shell command]  :执行所用的SHELL命令,或让用户进入 SHELL提示符
cd [目录]  : 切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录
lcd [目录] : 切换到客户端指定的目录;
dir 或ls : 列出当前目录下的文件;
exit 或quit : 退出smbclient        
get file1  file2 :从服务器上下载file1,并以文件名file2存在本地机上;若是不想更名,能够把file2省略
mget file1 file 2 file 3  file n :从服务器上下载多个文件;
md或mkdir 目录 :在服务器上建立目录
rd或rmdir   目录 : 删除服务器上的目录
put file1 [file2] :向服务器上传一个文件file1,传到服务器上更名为file2;
mput file1 file2 filen :向服务器上传多个文件
6.4.3.使用mount命令将共享目录挂载到本地
mount -o username=用户名 //服务器IP/共享目录    /本地主机目录
 
搭建此samba服务器所引起的问题:
作完这个实验有点郁闷,按照实验的需求描述,全部员工能够匿名访问public文件夹,即不须要用户名和密码验证就能看到public目录,peixun和kaifa这两个目录须要用户名及密码验证才能访问。也就是要实现匿名用户与普通用户并发登陆samba服务器。然而问题是在smb.conf主配置文件中的global全局配置中security配置项只要设置为user,就不能实现匿名访问public文件,若是security配置项设置为share,虽然匿名方式能登入samba服务器访问public目录,但tech组和project组没法使用验证方式访问peixun和kaifa这两个目录。
测试以下:
security配置项设置为user就再也不演示了,不能进行匿名访问public目录,以上实验中已经验证,只进行security配置项设置为share时的测试:
配置文件以下:
进行匿名访问:
访问kaifa和peixun这两个目录没法进行身份验证:
为了解决这个问题,想了好多办法,也在网上查找了这方面问题,虽然一样有人在我以前提出这类问题,但仍是没有看到解决的方法,期待有高手指教一下!
相关文章
相关标签/搜索