1. 就像 NFS 是架构在 RPC Server 上面一样,SAMBA 这个档案系统是架构在 NetBIOS ( Network Basic Input/Output System, NetBIOS )这个通讯协议上面所开发出来的。 2. SAMBA 的主要目的是让 Linux 主机加入 Windows 的网络系统当中来分享使用彼此的数据,而 Windows 使用的是 NetBIOS 这个通讯协议,所以说,SAMBA 主要是使用 NetBIOS over TCP/IP 的技术。 3. SAMBA 主机使用两个 daemons 来管理两个不同的服务: 4. SAMBA套件安装 5. SAMBA套件结构 >SAMBA设定档 (都放在 /etc/samba/ 底下) >>/etc/samba/smb.conf:这个就是 SAMBA 最主要的设定档, 分为两部份,分别是 [global] 这个设定主机功能的项目,以及接下来的每个分享出去的目录的属性设定。 >>/etc/samba/lmhosts: 类似于/etc/hosts文档,只是它是对应NetBIOS name的,通常不用管。 >>/etc/samba/smbpasswd: 预设不存在 >SAMBA执行档: SAMBA Server 的执行档有 testparm, smbd, nmbd, smbpasswd,SAMBA Client 的执行档主要则是:smbmount, smbclient。 >SAMBA 的相关目录 >>/usr/share/doc/samba:这个目录包含了 SAMBA 的所有相关的技术手册 >>/var/log/samba:这个目录就是 SAMBA 预设的登录文件放置目录了!如果 SAMBA 老是设定不起来,就到这里来观察吧! 6. Linux下SAMBA的设定 >先在 linux 上面的 SAMBA 设定档 smb.conf 里面设定好主机所支持的各项功能,例如是否需要密码、是否支持 PDC 等等;
几乎只需要动 smb.conf这个SAMBA设定档,可能还需要smbpasswd来建立使用者的账号与密码,先了解smb.conf档案,smb.conf 这个档案里面主要是以 [global/share directory] 开始一个主要设定的内容, 具体过程如下例(仅共享出/tmp): [root@test root]# cd /etc/samba [root@test samsa]# vi smb.conf ---->底下为最基础的设定 [tmp] ---->共享目录1 [directory] ---->共享目录2 (原始设定档里面预设了几个共享目录,如果不需要,可以用#或; 将之注释掉) [root@test samba]# grep -v '^#' smb.conf |grep -v '^;'|grep -v '^$' ---->确认下上面的设定是否有误注释情况 [root@test samba]# testparm ---->测试smb.conf设定值, 这里可以清楚看出conf里面global与share 目录的设定情况,里面很多是默认值. [root@test samba]# /etc/rc.d/init.d/smb restart [root@test root]# smbclient -L hostname ---->查询该主机的共享内容 ====>至此,无需密码的SAMBA服务器全部设定完毕,但需要特别留意的是 Linux 的档案权限与 SAMBA 设定的权限关系!接下来试试需要密码登陆的SAMBA服务器的设定...
>设定lmhosts ---->可以不用设定,在这个档案当中,要设定的数据很简单,就是每一部 PC 的 NetBIOS name 以及对应的 IP 即可,例如: >设定 smb.conf 并检验 smb.conf 的设定参数 (例要求: 共享每个人的根目录; 共享/home/public目录) security = user ---->需要登陆信息 host allow = 192.168.2.-- ---->设定这个后,未在hosts allow里面规定的IP无法登陆SAMBA主机,若想完全开放IP,就不要设这个项 [home] ---->之下设定每个使用者的根目录 [public] [root@test samba]# grep -v '^#' smb.conf |grep -v '^;'|grep -v '^$' ---->设定完毕后退出检验一下 [root@test samba]# mkdir -p /home/public ---->建立需要共享的目录 >根据smb.conf设定,建立一个密码文件 smbpasswd [-adem] username ---->建立、查看、修改或冻结用户SAMBA密码,这个密码与用户在 /etc/passwd底下的密码是不同的 [root@test samba]# testparm ---->测试和重启SAMBA服务器 [root@test samba]# smbclient -L hostname ---->客户端的测试 ====>设定完毕!
|