samba 实现 windows 和 centos7 文件共享
- 安装 samba
yum -y install samba
- 查看 samba 主配置文件
cat /etc/samba/smb.conf
查看主配置文件感觉内容太多时,可以执行以下命令过滤掉注释信息
# 先将主配置文件做一个备份
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
# 过滤掉以井号 「#」、分号 「;」 、空行,并覆盖主配置文件
cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
# 再次查看主配置文件
cat /etc/samba/smb.conf
- 配置共享资源
- 创建用于访问共享资源的账户信息
# 先创建一个系统用户 (用户名可以随意写,只要自己记得就好,这里为 sambauser)
# Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。
useradd sambauser
# 创建 samba 服务程序的用户 (执行以下命令后会提示输入密码,这里的密码用于创建共享时验证,因此需要牢记)
pdbedit -a -u sambauser
- 创建用于共享资源的文件目录
# 创建共享资源的文件目录,这里创建的文件名为 smb-share,文件名可以自由创建
mkdir -p /mnt/smb-share
# 设置文件夹权限
chown -Rf sambauser:sambauser /mnt/smb-share
# 设置该目录的 SELinux 安全上下文
semanage fcontext -a -t samba_share_t /mnt/smb-share
# 执行 restorecon 命令,让应用于目录的新 SELinux 安全上下文立即生效。
restorecon -Rv /mnt/smb-share
# 设置 SELinux 服务与策略
# 先筛选出所有与Samba服务程序相关的SELinux域策略
getsebool -a | grep samba
# 根据策略的名称(和经验)选择出正确的策略条目进行开启即可:
# eg:如果你的共享目录在家目录 /home 下,那么就需要开启
setsebool -P samba_enable_home_dirs on
# 这里我使用的共享目录在 /mnt 目录下,因此暂时不需要设置
- 在 Samba 服务程序的主配置文件中,写共享配置信息
vim /etc/samba/smb.conf
写入以下内容
# 共享名称为 smb-share
[smb-share]
# 共享信息
comment = smb-share
# 共享目录为 /mnt/smb-share
path = /mnt/smb-share
# 关闭“所有人可见”
public = no
# 允许写入操作
writable = yes
- 重启 samba 服务
# 重启 samba 服务
systemctl restart smb
# 将 samba 服务加入到开启启动项中
systemctl enable smb
# 清空 iptables 防火墙
iptables -F
# 保存 iptables 防火墙设置信息
service iptables save
至此,samba 服务器已经配置完毕
- Windows 挂载共享
- 打开
运行
,并输入 samba 服务器的 ip 地址
# 这里我的虚拟机的 ip 地址为 192.168.127.3,请换成你自己的 samba 服务器的 ip 地址
\\192.168.127.3
输入完毕之后,直接点击
确定
,就会跳出需要你输入账号和密码,这里的账号需要填写你 samba 服务程序的账号和密码,我这里已经刚刚输入一次了,因此第二次打开的时候,就没有提示要我输入账号和密码。我这里应该输入的账号为:sambauser测试
进入 /mnt/smb-share
目录查看文件
more /mnt/smb-share/fad.txt
还可以将共享文件夹映射为网络驱动器,这样下次就可以直接在 我的电脑
中打开了。
映射网络驱动器的方法为,直接对着共享文件夹,右键 => 映射网络驱动器 => 直接确定 即可