平台环境:Ubuntu16.04
许多情况下,我们都在windows上面编辑代码,并在linux上编译代码。
而Samba主要用来在Linux与windows之间共享文件,在windows上编辑后,就可以立即在linux进行编译,省去了文件拷贝这一操作步骤,大大加快了开发效率。
1、安装Samba
# sudo apt-get install samba
安装遇到的问题1:找不到软件包。
解决方法:更新源列表,然后安装。
安装遇到的问题2:依赖问题导致无法安装。
解决方法:先安装提示的依赖包,再安装。实在解决不了尝试先安装aptitude,再用aptitude装samba。
# sudo apt-get install aptitude
# sudo aptitude install samba
2、修改配置文件
# sudo vim /etc/samba/smb.conf
用vi 或用gedit都行,但都需要管理员权限。
在文件末尾添加如图所示内容:
可复制如下内容:
[data_share]
path = /home/disk/data_share
available = yes
browseable = yes
read only = no
public = yes
writable = yes
valid users = data_share fangye
create mask = 0755
directory mask = 0755
其中:[ ]内为Samba共享的名称,windows连接时根据该名字来连接。
path 为要共享的目录的绝对路径。
available 指定该共享资源是否可用
browseable 可读
writeable 可写
public 与guest ok含义相同,指定该共享是否允许guest账户(匿名)访问
valid users 指定允许访问的用户,在windows连接时会要求用户输入用户名密码,可以指定多个用户,用空格隔开
create mask windows挂载后,创建文件时的默认权限
directory mask windows挂载后,创建目录时的默认权限
## 如果指定了valid users,我们需要创建这个samba用户,没有创建samba用户,windows是访问不了的。
而且:我们添加的Samba用户首先必须是Linux用户,否则访问也会存在问题
3、开启服务
启动:sudo service smbd start
重启:sudo service smbd restart
停止:sudo service smbd stop
4、建立共享连接
首先确认windows与ubuntu互ping能够成功。
右键我的电脑->映射网络驱动器->文件夹:\\server\share
其中server为ubuntu的ip地址,share为共享名称。
如下图所示:
如果设置了指定用户访问,则需输入正确的用户名和密码。
点击完成,可看到网络位置多出一个磁盘,双击打开即可像使用windows本地磁盘一样,对虚拟机共享目录下的文件进行操作。
连接遇到的问题:
1. samba服务起来后,网络位置能够显示盘符,但是双击无法进入,提示无权限。
产生的原因:samba没有更新或没有安装相应依赖。
解决方法:
更新软件:
# sudo apt-get upgrade
安装samba-dev工具包(亲测解决上述问题):
# sudo apt-get install samba-dev
其他可能引起连接失败的原因:防火墙的拦截,关闭防火墙即可。
Windows防火墙设置:控制面板\系统和安全\Windows 防火墙\自定义设置
查看ubuntu防火墙状态:# sudo ufw status
若打开,则关闭ubuntu防火墙状态:# sudo ufw disable
2.映射网络驱动弹出网络错误,错误代码0x80070035,但是能ping通。如下图所示:
解决方法: 我遇到这个情况是因为虚拟机与windows的IP有冲突导致,修改IP即可解决。若不是由IP冲突引起请参考:https://blog.csdn.net/u013896064/article/details/52047804