Linux 和 Windows 之间共享文件之 samba

导语

如果对windows有过实际操作技巧的人都会明白,在windows下的文件共享加上网络驱动器映射是多么方便的体验,甚至比ftp更加的简单,就像本地多了一块可与他人交流的硬盘一样。

问题

由于性能和生态的原因,大多数人都选择的是linux 操作系统,而linux系统的环境与windows大不相同,windows的共享大量依赖与自己的用户模型系统。 如果想要在linux上与windows实现相互共享,很明显需要第三方的软件来模拟和转换。

方案

这么刚性的需求,肯定有大量的人早已实现了这样的需求,我们一番探究,选取一个最简单的方案–samba

实施

安装

安装这个东西非常简单

yum install samba  

即可。

配置

配置是比较复杂的,对于samba来说。 倒不是说他的选项繁多,而是他的逻辑比较反人类,而且配置说明和实际操作严重不符。 我们

vi /etc/samba/smb.conf  

这个地方我们进去编辑,会发现密密麻麻的一大片,大部分是注释,用来教你怎么配置。 然后其语言几度不精炼,而且写的竟然有问题。 其实这个东西的配置本身十分的简单,只需要配置好两个节点。

[global]
workgroup = mygroup   #工作组
server string = Samba Server Version %v #服务器文本
netbios name = HOME-WS    #主机名
log file = /var/log/samba/log.%m #日志名称
max log size = 50    #最大日志大小
guest ok = yes        #是否允许guest 账户
security = user    #安全模式

这段是全局配置,其中其中最大的坑在于

security = user  

这一句文档中解释说

security = the mode Samba runs in. This can be set to user, share # (deprecated), or server (deprecated).

意思就是可取值为user、share、server。 取这三个值分别对应用户模式、共享模式、域模式。 其中取值share的时候用户不需要输入密码直接就可以访问,share的时候由域服务器验证。这里我们简单点的需求就是直接取值share。 然而。。。。报错了。

WARNING: Ignoring invalid value 'share' for parameter 'security'  

值无效! 我凑! 尼玛! 老子是按照你的说法这样弄的啊!!! 于是翻文档,文档中又是这样说的

“(map to guest) Bad User - Means user logins with an invalid password are rejected, unless the username does not exist, in which case it is treated as a guest login and mapped into the guest account.” Combined with a “guest ok = yes” directive under a share will enable user/password-less browsing.

坑爹货,这下明白了,得还是用

security = user  

然后加上

map to guest = Bad Password  

再然后配合

guest ok = yes  

就可以实现用户匿名直接访问了。 接下来就是建立共享目录了。 很简单,在下面新建节点

[共享名称]
comment = sharefile
path = /var/sharefiles
public = yes
writable = yes
available = yes
browsable = yes
guest ok = yes
create mask = 0777
directory mask = 0777

ok了。

测试

这下在windows上就用\\ip 就可以看到共享的内容了。

阅读 5.1k

推荐阅读

nothing.I am simple

9 人关注
18 篇文章
专栏主页