使用Samba服务器构建私有和公共共享目录

简介:
 
使用Samba服务器构建私有和公共共享目录
 
实验背景:
      小诺公司使用RHEL4系统构建了Linux服务器,并在该服务器上默认安装了Samba服务器及相关软件包作为该公司的文件服务器。公司现在需要为所有用户建立一个公用文件夹作为所有员工交流用,其次为每个员工建立一个属于自己的共享文件夹,要求必须通过对应的账号和密码才能访问。本实验采用文件夹public作为公用文件夹,而xiaonuo和dreamfire作为两个私人文件夹,对应的用户名和文件夹名相同。
 
实验步骤:
 
1、 Samba服务器的安装
RHEL4系统中默认安装了Samba服务器和客户机的所有软件包,这些软件包都在RHEL4的第二张光盘中。如果需要可以使用rpm –ivh命令进行安装。
clip_image002
 
为了能够更好地理解samba服务器的相关配置可以通过man smb.conf进行查看帮助。
clip_image004
 
为了能够更清晰地查阅smb.com文件,可以使用grep –v命令去除注释行和样例行的内容。
clip_image006
 
2、 Samba用户账号及用户目录设置
 
2.1、删除用户配置文件模板里的文件
在smb.conf配置文件中,[homes]共享目录是Samba服务器默认提供配置的,也是比较特殊的共享设置。[homes]共享目录并不特指某个目录,而是表示Samba用户的宿主目录,即Samba用户登录后可以访问同名系统用户的宿主目录中的内容。
在宿主目录中,默认情况下会存在一些隐藏的用户配置文件,而在使用UNC路径访问的时候会出现这些隐藏的配置文件,会对用户带来不便,而每个用户的配置文件都是从用户配置文件模板“/etc/skel/”中复制过去的,因此需要将模板里的配置文件都删除掉,这样,建立的用户宿主目录里就不会存在任何文件。
clip_image008
 
2.2、建立Samba用户账号
Samba服务器不使用Linux系统的用户账号进行用户人在,而是维护自己的用户账户文件。Samba服务器用户账户文件保持在“/etc/samba”目录中,文件名是smbpasswd,初始状态smbpasswd文件不存在,在第一次使用smbpasswd命令创建Samba用户时自动建立。
使用smbpasswd命令的“-a”选项可以向smbpasswd文件中添加Samba用户账户,命令中需要指定要添加的用户名作为参数,smbpasswd命令执行过程中会提示设置该Samba用户的口令。在建立Samba用户账户之前需要建立同名的Linux系统用户账户。
注意:为了考虑安全性,Linux系统用户账户不需要设置密码,也登录不了系统。而在工作环境中,为了考虑安全性,Samba服务器只是充当文件服务器,只允许虚拟用户和管理员访问,其它用户是不允许登录的。
 
Smbpasswd命令参数详解:
-h:显示smbapasswd的命令格式帮助
-a:添加指定的用户账户
-d:禁用指定的用户账户
-e:启用指定的用户账户
-x:删除指定的用户账户
clip_image010
 
使用ls –a 可以查看宿主目录是否还有隐藏的文件。
clip_image012
 
2.3、添加公共目录public
要求任何用户都可以访问公共文件夹public,并且具有读写的权限。任何用户在公共目录中都以Linux中nobody(nobody属于系统中存在的特殊用户,这个用户是不允许在系统中正常登录的)系统用户的身份出现,即在公共目录中任何用户建立的文件都属于nobody系统用户。
clip_image014
 
2.4、smb.conf文件的全局配置
clip_image016
 
workgroup = xiaonuo.com 设置samba服务器所在的工作组的名称
server string = samba server 设置samba服务器的说明文字,用于描述samba主机
clip_image018
 
log file = /var/log/samba/%m.log 设置samba服务器的日志文件,“%m”变量表示客户端主机的名称。
Max log size = 50 设置日志文件的最大容量
clip_image020
 
Security = user 表示由提供服务的Samba服务器负责检测账户和密码,是Samba默认的安全设置。
Security = share 表示用户不需要账户及密码即可登入Samba服务器。
Security = server 表示检查账户及密码的工作指定由另一台Windows服务器或Samba服务器负责。
Security = domain 表示指定windows域控制服务器来验证用户的账户及密码。
clip_image022
clip_image024
 
2.5、smb.conf文件的局部配置
 
配置[homes]共享目录
comment用于设置共享的说明信息。
browseable设置为no表示所有samba用户的宿主目录都不能被看到,只有登录用户才能看到自己的宿主目录,这样设置可以加强samba服务器的安全性。
writable设置为yes表示用户可以对该共享目录写入,设置用户对自己的宿主目录具有写权限是比较合理的。
clip_image026
 
配置[public]共享目录
注意:在smb.conf中有[public]的配置模板,可参考进行配置
path = /home/public 设置public目录的共享路径
public = yes 表示该目录对于所有samba用户是可见的
only guest 设置为yes表示所有用户在使用该共享目录时的用户身份都是guest,即linux系统用户nobody。
writable设置为yes表示该共享目录对于用户可写。
clip_image028
 
2.6、对smb.conf文件配置的测试
在对smb.conf文件完成所有配置以后,可以使用testparm命令对该配置文件进行测试。testparm命令是samba服务器软件包中提供的配置文件测试工具,可以对smb.conf配置文件的语法进行检测,并显示当前配置的清单。
注意:testparm命令显示的配置清单可能与smb.conf中的配置内容稍有不同,这是由于testparm命令对配置文件的内容进行了处理,文件中的默认值设置项的内容会被忽略。可以看出testparm命令显示的配置清单与smb.conf文件中配置含义是完全相符的。
clip_image030
clip_image032
 
2.7、启动samba服务器
启动smb服务,相当于同时对smbd和nmbd两个服务器程序进行启动。
clip_image034
 
3、 使用windows客户端进行测试
在windows下使用UNC路径进行访问Samba服务器。
clip_image036
 
输入虚拟用户名和密码
clip_image038
 
可以看到公共共享目录public和登录的用户目录xiaonuo
clip_image040
 
xiaonuo用户可以在自己的目录里添加、修改、删除文件或文件夹也可以在public目录中添加、修改、删除文件或文件夹。
clip_image042
clip_image044
 
删除已有连接,然后使用dreamfire用户登录,可以看出,所有用户登录只能看到自己的目录以及共享目录,其它用户的目录是隐藏的,这样可以增加其安全性,避免一些用户使用宿主目录名称猜测密码。
clip_image046
clip_image048
clip_image050
clip_image052
 
4、 Samba WEB工具管理(swat)可以通过web界面管理samba服务器。
 
4.1、安装swat
Swat软件包位于RHEL4系统的第四张安装光盘中。
clip_image054
 
swat是受xinetd超级服务器管理的服务程序,在安装的默认状态下是禁用的,因此需要使用chkconfig命令启用swat服务,并重新启动xinetd服务程序。
clip_image056
 
4.2、配置swat
修改only_from = 200.200.200.100,也就是管理samba服务器的客户端的IP地址,从配置中可以看出访问的端口号为901,使用的用户为root,也可以修改为其它用户。
clip_image058
clip_image060
 
4.3、重新启动xinetd服务。
clip_image062
 
在Ip地址为200.200.200.100的主机上使用 http://200.200.200.222:901/ 访问samba服务器,输入用户root以及对应的密码即可。
clip_image064
clip_image066


本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/163376,如需转载请自行联系原作者
相关文章
|
2月前
|
Java 关系型数据库 API
探索后端技术:构建高效、可靠的服务器端应用
在当今数字化时代,后端技术是任何成功应用程序的基石。它涉及服务器、数据库和应用程序之间的交互,处理数据存储、业务逻辑和系统性能等关键任务。本文将深入探讨后端开发的核心概念、常见技术栈及其实际应用,帮助读者更好地理解和掌握构建高效、可靠后端系统的技巧与策略。
|
2月前
|
监控 中间件 Java
后端技术:构建高效、稳定的服务器端应用
【10月更文挑战第5天】后端技术:构建高效、稳定的服务器端应用
106 0
|
2月前
|
监控 关系型数据库 Serverless
探索后端技术:构建高效、可靠的服务器端应用
本文将深入探讨后端开发的核心概念和关键技术,从服务器架构到数据库管理,再到安全防护,为读者提供全面的后端技术指南。无论是初学者还是经验丰富的开发者,都能从中汲取灵感,提升自己的技术水平。
|
1月前
|
关系型数据库 API 数据库
后端开发的艺术:从零到一构建高效服务器
在数字化时代,后端开发是支撑现代互联网应用的基石。本文旨在探讨后端开发的核心概念、关键技术以及如何构建一个高效的服务器。我们将从基础的编程语言选择开始,逐步深入到数据库设计、API开发和性能优化等关键领域。通过实际案例分析,我们将揭示后端开发的复杂性和挑战性,同时提供实用的解决方案和最佳实践。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启发。
|
2月前
|
JSON JavaScript 前端开发
使用 Node.js 和 Express 构建 RESTful API 服务器
【10月更文挑战第3天】使用 Node.js 和 Express 构建 RESTful API 服务器
|
2月前
|
Web App开发 JavaScript 前端开发
使用Node.js和Express框架构建Web服务器
使用Node.js和Express框架构建Web服务器
|
2月前
|
存储 Unix 数据挖掘
服务器数据恢复—SAN LUN映射出错导致文件系统共享冲突的数据恢复案例
服务器数据恢复环境: SAN光纤网络环境,存储由一组6块硬盘组建的RAID6阵列构成,划分为若干LUN,MAP到跑不同业务的SUN SOLARIS操作系统服务器上。 服务器故障&分析: 因为业务需要,用户在该光纤存储环境中新增一台SUN SOLARIS操作系统服务器。将存储中的某个LUN映射到新增的服务器上,但是映射的这个卷之前已经MAP到SOLARIS生产系统上的某个LUN上了。因为未及时察觉这个问题,新增服务器已经对该LUN进行部分初始化操作。 在SOLARIS操作系统层面磁盘报错,重启后卷无法挂载。联系SUN工程师检测后,执行了fsck操作。操作完成后虽然文件系统可以挂上,但是发现大量
|
3月前
|
存储 关系型数据库 API
深入理解后端技术:构建高效、可扩展的服务器端应用
本文将探讨后端开发的核心概念和技术,包括服务器端编程、数据库管理、API设计和安全性等方面。通过深入浅出的方式,让读者了解如何构建高效、可扩展的后端系统。我们将从基本的后端框架开始,逐步深入到高级主题,如微服务架构和容器化部署。无论您是初学者还是有经验的开发人员,都能在本文中找到有价值的信息和实用的建议。
|
2月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API服务器
【10月更文挑战第12天】使用JavaScript和Node.js构建简单的RESTful API服务器
27 0
|
3月前
|
存储 弹性计算 SDN
企业级 ECS 集群的构建需要综合考虑多个因素,通过不断的比较和对比不同的方案,选择最适合企业自身需求和发展的架构。
【9月更文挑战第5天】在数字化商业环境中,构建企业级ECS(弹性计算服务)集群对提升业务稳定性、扩展性和性能至关重要。本文将比较传统物理服务器与ECS架构,分析云服务商选择(如AWS和阿里云)、实例配置(CPU/内存)、网络架构(SDN vs 传统)及存储方案(本地存储 vs 云存储),帮助企业根据自身需求选出最优方案,实现高效稳定的ECS集群部署。
79 18

热门文章

最新文章