samba文件共享服务环境搭建

一 了解文件共享服务

早期网络想要在不同主机之间共享文件大多要用 FTP 协议来传输,但 FTP 协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了 NFS 开源文件共享程序:NFS(NetworkFile System)是一个能够将多台 Linux 的远程主机数据挂载到本地目录的服务,属于轻量级的文件共享服务,不支持 Linux 与 Windows 系统间的文件共享。
这里写图片描述
随后在 1991 年时大学生 Tridgwell 为了解决 Linux 与 Windows 系统之间共享文件的问题,便开发出了 SMB 协议与 Samba 服务程序。
SMB(Server Messages Block)协议:实现局域网内文件或打印机等资源共享服务的协议。
当时 Tridgwell 想要注册 SMBServer 这个商标,但却被因为 SMB 是没有意义的字符被拒绝了,经过 Tridgwell 不断翻看词典,终于找到了一个拉丁舞蹈的名字——SAMBA,而这个热情舞蹈的名字中又恰好包含了 SMB(SAMBA),于是这便是 Samba 程序名字的由来。

Samba 服务程序是一款基于 SMB 协议并由服务端和客户端组成的开源文件共享软件,实现了 Linux 与 Windows 系统间
的文件共享。

下面介绍服务搭建:RHEL7.0环境
二 服务端:
1 安装samba软件包:

[root@server0 ~]# yum -y install samba

2 创建用户并将用户名加入共享帐号

[root@server0 ~]# useradd -s /sbin/nologin harry
######################################################
[root@server0 ~]# pdbedit -a harry  (将用户加入共享帐号)
 此时为harry设置共享账号密码为 123
[root@server0 ~]# pdbedit -L        (查看共享帐号列表)

3 创建共享目录

[root@server0 ~]# mkdir /common   (挂载目录为 /common)
[root@server0 ~]# echo 123 >/common/abc.txt
[root@server0 ~]# ls /common/

4 查看配置文件:

[root@server0 ~]# cat /etc/samba/smb.conf | grep -v "#" | grep -v ";" | grep -v ^$
[global]									 #全局参数。
	workgroup = STAEF                        #工作组名称
	server string = Samba Server Version %v  #服务器介绍信息,参数%v 为显示 SMB 版本号。
	log file = /var/log/samba/log.%m         #定义日志文件存放位置与名称,参数%m 为来访的主机名  
	max log size = 50                        #定义日志文件最大容量为 50Kb。
	security = user                          #安全验证的方式,共有4种
	passdb backend = tdbsam                  #定义用户后台的类型,共有 3 种
	load printers = yes                      #设置是否当 Samba 服务启动时共享打印机设备
	cups options = raw                       #打印机的选项
[homes]
	comment = Home Directories               #描述信息
	browseable = no                          #指定共享是否在“网上邻居”中可见
	writable = yes                           #定义是否可写入操作,与"read only"
[printers]                                   #打印机共享参数
	comment = All Printers                    
	path = /var/spool/samba                  #共享文件的实际路径(重要)
	browseable = no
	guest ok = no                            #是否所有人可见,等同于"public"参数
	writable = no
	printable = yes

5 修改配置文件

[root@server0 ~]# vim /etc/samba/smb.conf 
#############################################
[common]                             ————————>共享文件名
  path = /common                     ————————>共享文件绝对路径
  write list = harry                 ————————>为用户harry指定读写权限

"/etc/samba/smb.conf" 324L, 11657C    

6 重启smb服务

[root@server0 ~]# systemctl restart smb
[root@server0 ~]# systemctl enable smb

7 设置防火墙区域

[root@server0 ~]# firewall-cmd --set-default-zone=trusted 
取消防火墙限制,设置为临时允许所有,本目的只为简单演示
 

8 针对共享目录为用户harry设置acl权限

[root@server0 ~]# setfacl -m u:harry:rwx /common/

9 修改SELinux布尔值(服务功能的开关 on 或 off) SELinux是不是特别讨厌呢?

先查看samba服务的布尔值列表
[root@server0 ~]# getsebool -a | grep samba
修改
[root@server0 ~]# setsebool samba_export_all_rw on

三 客户端配置:需要在另外一台虚拟机上操作
1 安装软件包 cifs-utils

root@desktop0 ~]# yum -y install cifs-utils

2 创建目录作为挂载点

[root@desktop0 ~]# mkdir /mnt/nsd

3 设置开机自动挂载

[root@desktop0 ~]# vim /etc/fstab
修改配置:
//172.25.0.22/common /mnt/nsd cifs defaults,user=harry,pass=123,_netdev 0 0

4 查看挂载操作是否出错

[root@server0 ~]# mount -a     无报错代表挂载OK
 

5 查看挂载列表

[root@desktop0 ~]# df -h
文件系统              容量  已用  可用 已用% 挂载点
/dev/vda1              10G  3.1G  7.0G   31% /
devtmpfs              906M     0  906M    0% /dev
tmpfs                 921M   80K  921M    1% /dev/shm
tmpfs                 921M   17M  904M    2% /run
tmpfs                 921M     0  921M    devops0% /sys/fs/cgroup
//172.25.0.22/conmon   10G  3.1G  7.0G   31% /mnt/nsd


6 查看并写入文件

[root@desktop0 ~]# ls /mnt/nsd
abc.txt
[root@desktop0 ~]# cat /mnt/nsd/abc.txt
123
[root@desktop0 ~]# touch /mnt/nsd/kk.txt
至此,可读可写功能实现。



猜你喜欢

转载自blog.csdn.net/weixin_42104231/article/details/82709303