Linux 和 Windows 之间共享文件之 samba
时间:2022-03-18 10:34
导语
如果对windows有过实际操作技巧的人都会明白,在windows下的文件共享加上网络驱动器映射是多么方便的体验,甚至比ftp更加的简单,就像本地多了一块可与他人交流的硬盘一样。
问题
由于性能和生态的原因,大多数人都选择的是linux 操作系统,而linux系统的环境与windows大不相同,windows的共享大量依赖与自己的用户模型系统。 如果想要在linux上与windows实现相互共享,很明显需要第三方的软件来模拟和转换。
方案
这么刚性的需求,肯定有大量的人早已实现了这样的需求,我们一番探究,选取一个最简单的方案–samba。
实施
1.安装
安装这个东西非常简单
yum install samba
2.配置
配置是比较复杂的,对于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 = 0777directory mask = 0777
ok了。
测试
这下在windows上就用\ip 就可以看到共享的内容了。