在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这两个目录无法进行身份验证:
为了解决这个问题,想了好多办法,也在网上查找了这方面问题,虽然同样有人在我之前提出这类问题,但还是没有看到解决的方法,期待有高手指教一下!









本文转自 kk5234 51CTO博客,原文链接:http://blog.51cto.com/kk5234/385516,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
监控 中间件 Java
后端技术:构建高效、稳定的服务器端应用
【10月更文挑战第5天】后端技术:构建高效、稳定的服务器端应用
79 0
|
23天前
|
关系型数据库 API 数据库
后端开发的艺术:从零到一构建高效服务器
在数字化时代,后端开发是支撑现代互联网应用的基石。本文旨在探讨后端开发的核心概念、关键技术以及如何构建一个高效的服务器。我们将从基础的编程语言选择开始,逐步深入到数据库设计、API开发和性能优化等关键领域。通过实际案例分析,我们将揭示后端开发的复杂性和挑战性,同时提供实用的解决方案和最佳实践。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启发。
|
1月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
31 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
1月前
|
JSON JavaScript 前端开发
使用 Node.js 和 Express 构建 RESTful API 服务器
【10月更文挑战第3天】使用 Node.js 和 Express 构建 RESTful API 服务器
|
28天前
|
存储 Unix 数据挖掘
服务器数据恢复—SAN LUN映射出错导致文件系统共享冲突的数据恢复案例
服务器数据恢复环境: SAN光纤网络环境,存储由一组6块硬盘组建的RAID6阵列构成,划分为若干LUN,MAP到跑不同业务的SUN SOLARIS操作系统服务器上。 服务器故障&分析: 因为业务需要,用户在该光纤存储环境中新增一台SUN SOLARIS操作系统服务器。将存储中的某个LUN映射到新增的服务器上,但是映射的这个卷之前已经MAP到SOLARIS生产系统上的某个LUN上了。因为未及时察觉这个问题,新增服务器已经对该LUN进行部分初始化操作。 在SOLARIS操作系统层面磁盘报错,重启后卷无法挂载。联系SUN工程师检测后,执行了fsck操作。操作完成后虽然文件系统可以挂上,但是发现大量
|
1月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
155 0
|
1月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API服务器
【10月更文挑战第12天】使用JavaScript和Node.js构建简单的RESTful API服务器
17 0
|
1月前
|
监控 Java 关系型数据库
构建高效可靠的服务器端应用
【10月更文挑战第6天】构建高效可靠的服务器端应用
|
5天前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。
|
10天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
下一篇
无影云桌面