前言
redhat7搭建samba服务,实现linux和windows之间的文件共享。
搭建samba服务
- 安装samba1 yum install -y samba 
- 配置文件1 vi /etc/samba/smb.conf 
点击展开配置文件内容
1
2
3
4
5
6
7
8
9
10
11
12[global]
	workgroup = MYGROUP
	server string = MicroSoft Server 2003
	log file = /var/log/samba/log.%m
	max log size = 50
	security = user
	passdb backend = tdbsam
[sambaxkj]
comment = do not delete it!
path = /sambaxkj
public = no
writable = yes
注意:testparam命令可以检查配置文件语法是否正确。
- 创建共享目录 - 1 
 2- mkdir /sambaxkj 
 chmod -Rf 777 /sambaxkj
- 清空防火墙规则 - 1 
 2- iptables -F 
 service iptables save
- 重启samba服务 - 1 - systemctl restart smb 
注意:重启失败,因为没有关闭selinux。关闭selinux之后即可正常启动samba服务。
临时关闭selinux;setenforce 0
- 创建samba用户
 本地用户无法连接samba共享目录,必须 创建专用的samba用户,用于共享目录。
- 新增samba用户 1 useradd sambaxkj 
- 设置samba用户的密码 1 pdbedit -a -u sambaxkj 
测试文件共享服务
在windows主机进入“运行”,输入\\192.168.0.106,(IP地址为linux虚拟机的IP地址),即可使用samba用户登录到linux主机的共享目录。

可实现linux主机和windows主机的目录共享,任意一方都可增删改共享目录里面的内容。
打开selinux之后(setenforce 1),无法进入共享目录。
这是什么原因导致的?
是selinux上下文的限制还是域的限制?
答案:是上下文的限制。
- 查看与samba服务相关的sebool设置:1 getsebool -a |grep samba  
- 打开samba_export_all_rw上下文,允许samba用户对共享目录可读可写1 setsebool -P samba_export_all_rw=on 
- 重启samba服务,现在samba用户就可以对共享目录做读写操作了1 systemctl restart smb 
