samba——在windows文件资管管理器中操作linux的文件
本文讲述如何在linux平台上安装Samba服务,实现Window文件资源服务器访问文件的方案
samba简介
在早期的网络世界中,档案数据在不同主机之间的传输大多是使用FTP服务,但是FTP服务传输档案有一些小小的问题,那就是我们无法直接修改主机上面的档案数据,也就是说我们如果想要修改某个档案的数据时,就必须将该档案的服务器下载后才能修改,这样就很麻烦了。其实解决这个问题也很简单,NFS服务就很好的解决档案数据不能直接修改的问题,因为NFS服务是直接将共享目录挂载到客户端的机器上,那么共享目录就好像成了自己的目录一样,共享数据的使用自然就很方便,但是,NFS也有一些小小的问题,它仅能使Unix Like的机器相互分享。那么我要是需要Windows与Unix-Like这两个不同的平台相互分享呢?那该怎么办?也就是说,FTP服务实现了跨平台分享,却无法修改共享数据;NFS解决了共享数据的修改问题,却没办法实现跨平台的共享。所以,SAMBA服务也就随着需要产生了。 它综合了FTP和NFS的有点,既实现了跨平台的传输,还满足了修改数据的功能。
安装Samba
在 CentOS 上安装 Samba 可以通过以下步骤完成:
- 更新系统软件包:
sudo yum update
- 安装 Samba 软件包:
sudo yum install samba
配置Samba
- 创建一个smbuser用户,并根据提示为用户设置密码,该账户密码用于访问时身份认证。
useradd smb -u 6000 -g 6000 -s /sbin/nologin -d /dev/null
# -s表示无启动的shell -d表示无工作目录
sudo smbpasswd -a smbuser
- 编辑 Samba 的配置文件 /etc/samba/smb.conf :
sudo vi /etc/samba/smb.conf
- smb.conf文件中分为全局配置与共享资源配置
全局配置
#1.全局部分参数设置:
[global]
#与主机名相关的设置
workgroup = czx <==工作组名称
netbios name = czx <==主机名称,跟hostname不是一个概念,在同一个组中,netbios name必须唯一
serverstring = this is a test samba server <==说明性文字,内容无关紧要
#与登录文件有关的设置
log file = /var/log/samba/log.%m <==日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostname
max log size = 50 <==日志文件最大的大小为50Kb
#与密码相关的设置
security = share <==表示不需要密码,可设置的值为share、user和server
passdb backend = tdbsam
#打印机加载方式
load printer = no <==不加载打印机
共享资源配置
这个是我们的关键设置,即配置我们需要挂载出来的文件夹,可配置多个。
[temp] <==共享资源名称
comment = Temporary file space <==简单的解释,内容无关紧要
path = /tmp <==实际的共享目录
writable = yes <==设置为可写入
browseable = yes <==可以被所有用户浏览到资源名称,
guest ok = yes <==可以让用户随意登录
- 启动 Samba 服务,启动 Samba 服务并设置为开机自启。:
sudo systemctl start smb
sudo systemctl enable smb
- 配置防火墙规则:
如果你的 CentOS 上启用了防火墙,需要确保允许 Samba 服务的通信。可以使用以 下命令开放 Samba 的默认端口 445:
sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload
完成配置后,可以在其他设备上访问共享文件夹,使用 Samba 用户名和密码进行身份验证。
- 修改配置,重新加载smb
# 修改后重新加载配置需重启smb
sudo systemctl enable smb