与 Windows 共舞 - Samba
参考文件
所需套件
在 Windows 里, 使用 "网路芳邻" 来做 Windows 之间的分享; 在 Unix/Linux 里, 使用 NFS 做资源分享, 使用 Samba, 就可以让 Windows 和 Linux 使用 SMB 通讯协定来完成彼此之间的分享. 本篇文章, 大部份均使用 /etc/samba/smb.conf 这个档案, 如有使用到别的档案, 会另行说明. 让 Linux 成为群组之一 要让 Linux 成为 Windows 网路的群组之一, 就是要把自已加入群组, 设定的方法. 在 [global] 里的 workgroup 要设定成 Windows 群组:
设定完之后, (重新) 启动 smb service
接下来, 您就可以在 Windows 的网路芳邻里看到了。 这样可以很清楚的看到, Nbcentos 是那台经由 samba 分享出来的电脑名称, 而 注解栏位就等於是 server string 的设定. 建立一位使用者 能看到电脑了 ! 接下来一定会马上想点两下看看有分享些什么 :) 但很不幸的居然需要帐号密码 :-( 现在我们来建立一个用者密码, 让他能登入. 建立密码的前提, 这个帐号必需为 "本机系统" 的实体帐号, 也就是说, 在设定密码时, 前提是一定要有这位使用者才可以, 假设目前已经有了一位叫 steven 的 user, 现在要让他能够登入.
现在再输入一次帐号密码试看看! 看, 这样就可以看到自己的家目录了! 分享其它的目录 现在系统除了使用者家目录之外, 管理员也希望把一些文件也分享出来让大家使用 (位置在 /documents) , 那么我们就应该设立一个分享才行. 分享有一些条件, 就是只能读取但无法写入. 新增一个分享区块
设定完之后, (重新) 启动 smb service
再看一次有什么变化 限定某些网段才可以使用本机分享 基於安全理由, 有些管理员可能希望这些分享只有在公司的网路才可以共享, 在其它的地方则不允许, 这时候我们可以使用 hosts allow 选项来让我们达成这个目地.
一样, 您必需要重新启动 smb 服务才行. 如果您不是在允许的范围之内, 那么在连接时就会发生错误讯息: smb 系统已启动, 其它电脑就是无法连线 samba 在执行时, 会使用 udp 137, udp 138, tcp 139, tcp 445 等 port, 如果一切就绪, 但还是无法连线, 那么就有可能是您的防火墙没有开放, 把他开启就可以了, 如果您是使用 iptables 则可以考虑使用以下指令: 以下要开启的 port 是和微风论坛的大哥实做之后得到的, 谢谢微风论坛的大哥 ^^
关於 udp 137, udp 138, tcp 139,tcp 445 的相关介绍, 请参考 Andrew 所提供的连结: 与事实相违? 已允许写入确还是发生错误 当您在 smb.conf 设定了 user 可以在目录写入时, 确还是会出错时, 这时您就要考虑要一点: 所有的 Service 允许的动作最后都要尊重 Filesystem 的权限. 上面意思是, 如果您允许 user 在 documents 放入自已的文件, 但是如果在主机 /documents 没有给 user 写入的权限, 那么还是无法写了的! 中文字发生错误? 相信大家在取档名时,会发现一个很怪异的情况,就是中文档名都变成乱码了,就像下图所示: 其实这是在 samba 中,字型编码 code page 的问题,只要改成正确的 code page 就可以了,修改 /etc/samba/smb.conf。
修改完之后,重新启动 samba 就可以了。
再来看一次,中文编码应该没问题了。 本例使用 samba 3.x,有关中文编码的问题在 samba 2.x 并不适用。 Last modified: 02/28/2007 |
||||||||||