一、SAMBA让 Linux 与 Windows主机之间能彼此透过『网络上的芳邻』这个方式来分享档案,而最主要的目的就是当你的局域网络内办公用的主机大多是 Windows 系统时, 可以透过网芳来存取 Linux 主机上面的资源,让你不觉得有任何不一样!
再次的给他强调一次,在 Unix Like 上面可以分享档案数据的 file system 是 NFS,那么在 Windows 上面使用的『网络上的芳邻』所使用的文件系统则称为 Common Internet File System, CIFS
二、SAMBA 这个文件系统是架构在 NetBIOS (Network Basic Input/Output System, NetBIOS) 这个通讯协议上面所开发出来的
NetBIOS 的目的仅是要让局域网络内少数计算机进行网络链接的一个通讯协议而已, 所以考虑的角度并不是针对大型网络,因此,这个 NetBIOS 是无法跨路由的(Router / Gateway)。
主机在 NetBIOS 协议当中的定义为使用『NetBIOS Name』,每一部主机必须要有不同的 NetBIOS Name 才行, 而档案数据就是在不同的 NetBIOS name 之间沟通啰
三、我们的 SAMBA 则是透过两支服务来控制两个步骤,分别是:
所以啰, SAMBA 每次启动至少都需要有这两个 daemons 喔!这可不要忘记啰! ^_^而当我们启动了 SAMBA 之后,主机系统就会启动 137, 138, 139 三个 port ,且同时会有 UDP/TCP 的监听服务喔!这可不要忘记了! 因为后面设定防火墙的时候,还会使用到这三个 port 的呢!
四、SAMBA两种最常见的局域网络的联机模式 peer/peer 及domain model。
1、 peer/peer (Workgroupmodel):在局域网络里面的所有 PC 均可以在自己的计算机上面管理自己的账号与密码, 同时每一部计算机也都具有独力可以执行各项软件的能力,只是藉由网络将各个 PC 链接在一起而已的一个架构, 所以,每一部机器都是可以独立运作的
使用 peer/peer 的架构的好处,是每部计算机均可以独立运作,而不受他人的影响!不过, 缺点就是当整个网域内的所有人员都要进行数据分享时,光是知道所有计算机里面的账号与密码,就会很伤脑筋了! 所以, Peer/Peer 的架构是比较适合 (1)小型的网域,或者是 (2)没有需要常常进行档案数据分享的网络环境,或者是 (3)每个使用者都独自拥有该计算机的拥有权(就是说,该计算机是用户的,而不是公用的
2、domain model:将所有的账号与密码都放置在一部主控计算机 (Primary DomainController, PDC) 上面,在我的网域里面,任何人想要使用任何计算机时,都需要在屏幕前方输入账号与密码,然后通通藉由 PDC 主机的辨识后,才给予适当的权限,也就是说,不同的身份还具有不一样的计算机资源权限就是了。这样的架构比较适合人来人往的企业架构,当系统管理员要控管新进人员的计算机资源使用权时,可以直接针对 PDC 来修改就好了,不需要每一部主机都去修修改改的
五、Samba设定:
smb.cnf档案其实可以分为两部份来看, 一个是主机信息部分,在 smb.conf 当中以 [global] 作为设定的依据;另一个则是分享的信息, 以个别的目录名称为依据。在smb.conf 当中, 井字号与分号 (#跟 ;) 都是批注符号。
在 [global] 部分关于主机名信息方面的参数主要有:
六、主机整体参数
# 会有很多加上 # 或 ; 的批注说明,你也可以自行加上来提醒自己相关设定
[global]
参数项目 = 设定内容
....
[分享资源名称]
参数项目 = 设定内容
....
workgroup= 工作组的名称:注意,主机群要相同;
netbiosname = 主机的NetBIOS 名称啊,每部主机均不同;
serverstring = 主机的简易说明,这个随便写即可。
displaycharset = 自己服务器上面的显示编码, 例如你在终端机时所查阅的编码信息。一般来说,与底下的 unixcharset 会相同。
unixcharset = 在 Linux 服务器上面所使用的编码,一般来说就是 i18n 的编码啰! 所以你必须要参考/etc/sysconfig/i18n 内的『默认』编码。
doscharset = 就是Windows 客户端的编码了! 一般来说我们的繁体中文 Windows 使用的是 big5 编码,这个编码在 Samba 内的格式被称为『 cp950 』喔!
关于语系编码,建议您参考一下讨论区的这一篇:
http://phorum.vbird.org/viewtopic.php?t=22001
还有登录文件方面的信息, 包括这些参数:
log file = 登录档放置的档案,文件名可能会使用变量处理;
max logsize = 登录档最大仅能到多少 Kbytes ,若大于该数字,则会被 rotate 掉。
还有跟密码有关的参数,包括这几个:
security= user, server, domain, share 四选一,这四个设定值分别代表:
user :使用 SAMBA 本身的密码数据库,密码数据库与底下的 smbpasswd file 有关;
share:分享的数据不需要密码即可分享;
server,domain:使用外部主机的密码,亦即 SAMBA 是客户端之意,如果设定这个项目, 你还得要提供『password server = IP』的设定值才行;
encryptpasswords = Yes 代表密码要加密,注意那个 passwords 要有 s 才对!
smbpasswd file = 密码放置的档案,通常是/etc/samba/smbpasswd 。
事实上 Samba 的密码方面设定值很多喔,包括你还可以利用 samba 来修改 /etc/passwd 里头的人物的密码呢! 不过这个时候就得需要『 unixpassword sync 』以及『 passwd program 』这两个参数值的帮忙了。 我们这里先谈比较简单的,其他进阶的部分可以 mansmb.conf 去进行搜寻查阅喔!
七、分享目录参数
[分享名称] :这个分享名称很重要,他是一个『代号』而已。 举例来说,你在 Windows 当中使用『共享』来分享网芳时,假设你将『D:\game』分享出来, 系统不是还会要你输入一个『在网络上面的名称』吗?假设你输入『My_Games』这个名称好了, 那么未来大家在网芳看到的这个文件夹 (D:\game)名称其实是『\\你的IP\My_Games』啦!
comment :这个目录的说明!
path :在网芳中显示的名称 [分享名称] 中,所实际进入的 Linux 文件系统。 也就是说,在网芳当中看到的是 [分享] 的名称,而实际操作的文件系统则是在 path 里头所设定的。
readonly:是否只读?
public :是否让所有可以登入的用户看到这个项目?
writable:是否可以写入?这里需要注意一下喔!那个 read only 与 writable 不是两个蛮相似的设定值吗?如果 writable 在这里设定为 no ,亦即不可写入,那跟 read only 不就互相抵触了!那个才是正确的设定?答案是:最后出现的那个设定值为主要的设定!
create mode 与 directorymode 都与权限有关的咯!
validusers = 用户,这个项目可以指定能够进入到此资源的特定使用者。