Linux上搭建Samba,实现windows与Linux文件数据同步
一 环境介绍
1. 本地win10
2. Linux (centos7.4)
注:因为运营商方面禁止smb协议,导致无法在云服务器上使用smb,如果不是在虚拟机上操作,而是在云服务器上操作,建议还是使用 filezilla+xshell组合 或者 使用finalshell等工具来进行Linux和Windows文件同步。
二 安装Samba
1. 安装samba相关的服务
yum install -y samba*
2. 查看Samba是否安装成功
systemctl status smb
注:如果出现如下显示,说明Samba安装成功
![](/qrcode.jpg)
三 配置Samba
1. 配置Samba配置文件
1.1 备份samba配置文件
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
1.2 编辑smb.conf , 对samba进行配置,改为如下
[global] workgroup = WORKGROUP server string = Ted Samba Server %v netbios name = TedSamba security = user map to guest = Bad User passdb backend = tdbsam [Faraway] comment = project development directory path = /data valid users = ted write list = ted printable = no create mask = 0644 directory mask = 0755
2. 配置系统文件打开数目上限(因为后续会通过samba文件打开大量文件,所以需要修改此参数)
vim /etc/security/limits.conf
//文件末尾需要添加如下内容
* soft nofile 65535
* hard nofile 65535
四 创建用户
groupadd co3 #创建co3组
useradd ted -g co3 -s /sbin/nologin #添加用户ted,并放到co3组
smbpasswd -a ted #将ted用户添加到smb服务中
五 赋予共享文件夹属性
chown ted:co3 /data/
六 关闭 Selinux 和 防火墙
1.关闭Selinux
vim /etc/selinux/config #永久关闭selinux , 将SELINUX=enforcing改为SELINUX=disabled
2.关闭firewall
systemctl stop firewalld
systemctl disable firewalld
3. 重启系统
reboot
七 启动Samba
systemctl stop iptables #关闭防火墙 (虽然之前有关闭防火墙的操作,但是根据实践表明,可能防火墙关闭的并不彻底,所以添加了这一步)
systemctl restart smb #重启
systemctl enable smb #修改为开机启动
systemctl status smb #查看状态
八 windows访问Linux下data文件夹
1 访问
2. 效果
3. 将Linux上的文件映射到磁盘中
鼠标右键Faraway文件夹, 选择"映射网络驱动器,选择一个磁盘名",确定之后,我们打开我的电脑,可以看到多了一个磁盘,就是Linux映射过来的文件夹
像这样
九 可能出现的问题
一 无法访问远程samba共享文件夹
1. 重新关闭firewalld,并重启smb
2. 进行windows的smb配置
//管理员权限进入cmd
//开启SMBv1
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto
//关闭SMBv2 and SMBv3
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
3. 设置windows访问来宾权限
3.1 win+R
3.2
3.3 双击调整来宾登录
https://jingyan.baidu.com/article/7c6fb428d62a6e80642c90cc.html
4. 如果到现在还是不行,检查本地win10计算机登录账户, 确认切换到本地账户登录
二 写入文件用sublime可以, 用phpstorm就打不开
这时,我们需要对phpstorm进行一定的设置,如下
应用确定之后,我们发现,现在可以用phpstorm打开刚才在phpstorm中显示不出来的远程Linux文件了
参考:
http://www.mamicode.com/info-detail-2255973.html
https://blog.csdn.net/qice675563721/article/details/74853222