本次实验环境是redhat 7.0系统 1987年,微软公司和英特尔公司共同制定了SMB(server messages block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。1991年,Tridgwell为了解决linux系统与windows系统之间的文件共享问题,基于SMB写协议开发出了SMBServer服务程序,Tridgwell想把这款软件的名字SMBServer注册成为商标,但是被商标局以SMB是没有意义的字符而被拒绝了申请,后台Tridgwell看到了一个拉丁舞蹈的名字---Samba,而且这个名字又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。

1. 服务器端

1.1 安装

[root@localhost Desktop]# yum install samba -y

1.2 创建用户

创建用户访问共享资源的账户信息,samba服务程序默认使用的是用户口令认证模式,Samba服务程序的数据库要求账户必须在房钱系统中存在,否则日后创建文件时将导致文件的权限属性混乱,引发错误。

# 创建系统用户
[root@localhost Desktop]# useradd developer

# 创建samba账户
[root@localhost Desktop]# pdbedit -a developer
new password: 【输入密码】
retype new password: 【输入密码】
Unix username:        developer
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-1517496949-173283904-49759889-1000
Primary Group SID:    S-1-5-21-1517496949-173283904-49759889-513
Full Name:            
Home Directory:       \\localhost\developer
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\developer\profile
Domain:               LOCALHOST
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:    Sun, 16 Feb 2020 14:48:29 CST
Password can change:  Sun, 16 Feb 2020 14:48:29 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

1.3 创建共享资源的目录

# 创建目录
[root@localhost Desktop]# mkdir /var/sambadir

# 设置共享目录的属性
[root@localhost Desktop]# chown -fR developer:developer /var/sambadir

# 设置selinux的安全上下文策略,并加载策略
[root@localhost Desktop]# semanage fcontext -a -t samba_share_t /var/sambadir
[root@localhost Desktop]# restorecon -Rv /var/sambadir
restorecon reset /var/sambadir context unconfined_u:object_r:var_t:s0->unconfined_u:object_r:samba_share_t:s0

# 查看和samba服务相关的selinux域策略
[root@localhost Desktop]# 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_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
# 开启samba_enable_home_dirs策略,允许samba服务访问共享目录
[root@localhost Desktop]# setsebool -P samba_enable_home_dirs=on

1.4 设置主配置文件

[root@localhost samba]# vim smb.conf
[global]
	workgroup = MYGROUP
	server string = Samba Server Version %v
	log file = /var/log/samba/log.%m
	max log size = 50
	security = user
	passdb backend = tdbsam
[sambadir]                                    # 共享名称
	comment = do not arbitraiily modify the sambadir file  # 用户连接samba服务时的提示信息
	path = /var/sambadir                # 共享目录的路径
	public = no                               # 关闭“所有人可见”
	writable = yes                          # 允许写入操作

1.5 启动

[root@localhost samba]# systemctl restart smb
[root@localhost samba]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
# 设置防火墙
[root@localhost samba]# firewall-cmd --permanent --add-service=samba
success
[root@localhost samba]# firewall-cmd --reload
success

服务器端配置完成

2.使用windows测试

3. 使用linux客户端测试

安装cifs-utils

yum install cifs-utils -y

将samba服务的用户名和密码写到一个文件中,挂载的时候使用,权限设置成仅root用户可以读写:

[root@localhost sambadir]# vim /root/user 
username=developer
password=redhat
domain=MYGROUP
[root@localhost sambadir]# chmod 600 /root/user

将挂载共享目录写入到/etc/fstab文件中,开机自动挂载。

[root@localhost sambadir]# vim /etc/fstab 
\\192.168.137.10/sambadir /sambadir cifs credentials=/root/user 0 0
[root@localhost ~]# mount -a
[root@localhost ~]# df -TH
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root     xfs        19G  3.2G   16G  17% /
devtmpfs                  devtmpfs  1.1G     0  1.1G   0% /dev
tmpfs                     tmpfs     1.1G  181k  1.1G   1% /dev/shm
tmpfs                     tmpfs     1.1G  9.3M  1.1G   1% /run
tmpfs                     tmpfs     1.1G     0  1.1G   0% /sys/fs/cgroup
/dev/sda1                 xfs       521M  118M  404M  23% /boot
/dev/sr0                  iso9660   3.8G  3.8G     0 100% /media/cdrom
\\192.168.137.10/sambadir cifs       19G  3.2G   16G  17% /sambadir

挂载成功