SAMBA服务实现文件共享

本文介绍了Samba服务的历史及其在Linux和Windows间实现文件共享的作用。通过详细步骤,讲解了如何安装、配置Samba服务,包括设置共享资源、创建账户信息、修改文件权限、配置防火墙策略,并在Windows和Linux客户端挂载共享。Samba服务允许用户在不同操作系统之间便捷地共享文件和打印机。
摘要由CSDN通过智能技术生成

· SAMBA文件共享服务

在这里插入图片描述

服务相关介绍

1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block)服务器消息块协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单
到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序
这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作
当时,Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以SMB是没有意义的字符而拒绝了申请。后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择

服务参数介绍

Samba:服务程序的名字也恰巧是软件包的名
samba-client:用于测试共享目录的客户端程序

1.安装samba服务

[root@xiudaochengxian ~]# yum -y install samba samba-client
Complete!

2.编辑samba主配置文件(只有37行)

第17至22行代表共享该登录用户的家目录内容,虽然某些情况下可以更方便的共享文件,但这个默认操作着实有些危险,建议删除掉不要共享
第24-29行是用SMB协议共享本地的打印机设备,方便局域网内的用户可以远程使用,当前我们没有打印机设备,因此也删除掉不共享
第31至37行依然为共享打印机设备的参数,同样建议予以删除

[root@xiudaochengxian ~]# cd /etc/samba/
[root@xiudaochengxian samba]# ls
lmhosts  smb.conf  smb.conf.example
[root@xiudaochengxian samba]# vim smb.conf
  1 # See smb.conf.example for a more detailed config file or
  2 # read the smb.conf manpage.
  3 # Run 'testparm' to verify the config is correct after
  4 # you modified it.
  5 
  6 [global]	#全局参数
  7         workgroup = SAMBA	#工作组名称
  8         security = user		#安全验证的方式,user 使用账号密码进行验证
  9 
 10         passdb backend = tdbsam	#定义用户后台的类型,共有四种
 11 
 12         printing = cups			#打印服务协议
 13         printcap name = cups	#打印服务名称
 14         load printers = yes		#是否加载打印机
 15         cups options = raw		#通用UNIX打印系统服务
 16 
    # 第17至22行代表共享该登录用户的家目录内容【可删除】
 17 [homes]		#共享名称
 18         comment = Home Directories	 #描述信息
 19         valid users = %S, %D%w%S	 #可用账户
 20         browseable = No				 #指定共享信息是否在“网上邻居”中可见
 21         read only = No				 #是否只读
 22         inherit acls = Yes			 #是否继承访问控制列表
 23 
	# 第24-29行是用SMB协议共享本地的打印机设备【可删除】
 24 [printers]	#共享名称
 25         comment = All Printers	#描述信息
 26         path = /var/tmp			#共享路径
 27         printable = Yes			#是否可打印
 28         create mask = 0600		#文件权限
 29         browseable = No			#指定共享信息是否在“网上邻居”中可见
 30 
	# 第31至37行为共享打印机设备的参数【可删除】
 31 [print$]	#共享名称
 32         comment = Printer Drivers		#描述信息
 33         path = /var/lib/samba/drivers	#共享路径
 34         write list = @printadmin root	#可写入文件的用户列表
 35         force group = @printadmin		#用户组列表
 36         create mask = 0664				#文件权限
 37         directory mask = 0775			#目录权限

3.有效配置文件

  [root@xiudaochengxian samba]# cat smb.conf
[global]
	workgroup = SAMBA
	security = user
	passdb backend = tdbsam
	printing = cups
	printcap name = cups
	load printers = yes

在这里插入图片描述

· 配置共享资源

在这里插入图片描述
1.安装samba和samba-client服务

[root@xiudaochengxian ~]# yum -y install samba samba-client
Complete!

2.配置Samba服务程序的主配置文件

[root@xiudaochengxian ~]# cd /etc/samba
[root@xiudaochengxian samba]# ls
lmhosts  smb.conf  smb.conf.example
[root@xiudaochengxian samba]# vim smb.conf
  1 [global]
  2         workgroup = SAMBA
  3         security = user
  4         passdb backend = tdbsam
  5 [rick]  
  6         comment = sadsakdsad
  7         path = /rick
  8         public = no
  9         writable = yes

用于设置Samba服务程序的参数以及作用
在这里插入图片描述
3.重启samba服务并加入开机启动项

[root@xiudaochengxian samba]# systemctl restart smb
[root@xiudaochengxian samba]# systemctl enable smb

4.创建用于访问共享资源的账户信息

在RHEL 8系统中,Samba服务程序默认使用的是用户口令认证模式(user)
这种认证模式可以确保仅让有密码且受信任的用户访问共享资源

只有建立账户信息数据库之后,才能使用用户口令认证模式。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误

#新建用户
[root@xiudaochengxian samba]# useradd zhangsan
[root@xiudaochengxian samba]# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)
#管理samba服务程序的账户信息数据库
[root@xiudaochengxian samba]# pdbedit -a -u zhangsan	#第一次把账户信息写入到数据库时使用-a参数
new password:
retype new password:
Unix username:        zhangsan
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2786892955-2209903556-728344356-1000
Primary Group SID:    S-1-5-21-2786892955-2209903556-728344356-513
Full Name:            
Home Directory:       \\xiudaochengxian\zhangsan
HomeDir Drive:        
Logon Script:         
Profile Path:         \\xiudaochengxian\zhangsan\profile
Domain:               XIUDAOCHENGXIAN
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
Password last set:    Wed, 25 Aug 2021 10:59:22 CST
Password can change:  Wed, 25 Aug 2021 10:59:22 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

在这里插入图片描述
5.创建用于访问共享资源的文件目录,修改文件权限

[root@xiudaochengxian samba]# mkdir -p /rick
[root@xiudaochengxian samba]# chown -Rf zhangsan:zhangsan /rick
[root@xiudaochengxian samba]# chmod -Rf 777 /rick

6.设置SELinux服务与策略

[root@xiudaochengxian samba]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
[root@xiudaochengxian samba]# setsebool -P samba_export_all_rw=on

7.配置防火墙策略

[root@xiudaochengxian samba]# iptables -F
[root@xiudaochengxian samba]# iptables-save 
[root@xiudaochengxian samba]# firewall-cmd --zone=public --permanent --add-service=samba
success
[root@xiudaochengxian samba]# firewall-cmd --reload 
success

8.在服务器本地检查samba服务是否启动

[root@xiudaochengxian samba]# smbclient -U zhangsan -L 192.168.1.105
														#-U	指定用户名称
														#-L	列举共享清单
Enter SAMBA\zhangsan's password: 	#输入该账户在Samba服务数据库中的密码

	Sharename       Type      Comment
	---------       ----      -------
	rick            Disk      sadsakdsad
	IPC$            IPC       IPC Service (Samba 4.7.1)
Reconnecting with SMB1 for workgroup listing.

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

· Windows挂载共享

1.测试网络连通性

Microsoft Windows [版本 10.0.19041.1165]
(c) Microsoft Corporation。保留所有权利。

C:\Users\xiudaochengxian>ping 192.168.1.105

正在 Ping 192.168.1.105 具有 32 字节的数据:
来自 192.168.1.105 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.105 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.105 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.105 的回复: 字节=32 时间<1ms TTL=64

192.168.1.105 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

2.在Windows系统中访问共享资源
在这里插入图片描述
在这里插入图片描述

3.输入账户名和pdbedit命令设置的密码后,就可以登录到共享界面中了

可以尝试执行查看、写入、更名、删除文件等操作
在这里插入图片描述
在这里插入图片描述

· Linux挂载共享

1.客户端安装支持文件共享服务的软件包(cifs-utils)

[root@test ~]# yum -y install cifs-utils
Complete!

2.客户端创建一个用于挂载Samba服务共享资源的目录
可以与服务器上的共享名称同名,便于日后查找

[root@test ~]# mkdir /rick

3.客户端写入一个认证文件,让/etc/fstab文件和系统自动挂载

[root@test ~]# vim auth.smb
  1 username=zhangsan	#用户名
  2 password=123456		#密码
  3 domain=SAMBA		#共享域(工作组名称)

[root@test ~]# vim /etc/fstab 
 12 //192.168.1.105/rick /rick cifs credential=/root/auth.smb
    0 0

在这里插入图片描述
4.客户端挂载samba服务共享资源目录

[root@test ~]# mount -t cifs -o username=zhangsan,password=123 //192.168.1.105/rick /rick
[root@test ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              17G  5.0G   13G  30% /
devtmpfs              1.9G     0  1.9G   0% /dev
tmpfs                 1.9G     0  1.9G   0% /dev/shm
tmpfs                 1.9G   21M  1.9G   2% /run
tmpfs                 1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1            1014M  165M  850M  17% /boot
tmpfs                 378M   48K  378M   1% /run/user/0
/dev/sr0              4.2G  4.2G     0 100% /run/media/root/CentOS 7 x86_64
//192.168.1.105/rick   17G  3.5G   14G  21% /rick

在这里插入图片描述
5.客户端查看共享文件资源

[root@test ~]# cd /rick/
[root@test rick]# ls
haha.txt
[root@test rick]# cat haha.txt 
windows访问成功[root@test rick]# 
#客户端修改共享文件资源
[root@test rick]# vim haha.txt
  1 window10 共享成功
  2 linux can edit it

6.服务器查看共享文件资源

[root@xiudaochengxian samba]# cd /rick/
[root@xiudaochengxian rick]# ls
haha.txt
[root@xiudaochengxian rick]# cat haha.txt 
window10 共享成功
linux can edit it
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值