织梦CMS - 轻松建站从此开始!

罗索

Linux网络架站 八 (SAMBA服务器设定)

落鹤生 发布于 2010-04-14 21:02 点击:次 
SAMBA 的主要目的是让 Linux 主机加入 Windows 的网络系统当中来分享使用彼此的数据,而 Windows 使用的是 NetBIOS 这个通讯协议,所以说,SAMBA 主要是使用 NetBIOS over TCP/IP 的技术。
TAG:

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 来管理两个不同的服务:
>smbd :这个 daemon 的主要功能就是用来管理 SAMBA 主机分享什么目录、档案与打印机等等的内容。
>nmbd :这个 daemon 则是用来管理群组、NetBIOS name 等等的解析。

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 的后半部当中设定好想要分享的目录与该目录的属性;


>如果在步骤 2 里面的 smb.conf 档案内设定的分享方法是需要账号与密码的登入时,就以 smbpasswd 建立使用者的账号与密码;


>启动 smb 的服务,开始运转

        几乎只需要动 smb.conf这个SAMBA设定档,可能还需要smbpasswd来建立使用者的账号与密码,先了解smb.conf档案,smb.conf 这个档案里面主要是以 [global/share directory] 开始一个主要设定的内容, 具体过程如下例(仅共享出/tmp):

[root@test root]# cd /etc/samba
[root@test samba]# cp smb.conf smb.conf.bak
   ---->有备无患,养成习惯

[root@test samsa]# vi smb.conf ---->底下为最基础的设定
[global]
    workgroup        = birdhouse
   netbios name     = birdhome
   server string    = Bird's testing SAMBA Server ---->不重要,随便写
   client code page = 950           ---->使得SAMBA在windows下显示中文
   log file = /var/log/samba/log.%m ---->%m代表 Client 端的 NetBIOS 主机名称
   max log size = 0                 ---->为0表示登陆档案大小无限制
   security = share                 ---->share表示无需密码,任何人可进入; user表示需要密码验证;
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   interfaces = 192.168.2.89
   dns proxy = no

[tmp] ---->共享目录1
   comment = Temporary file space
   path = /tmp   ---->真正的开放出来的路径在这里
   read only = no
   public = yes ---->上面两个设定表明不但可以存取(read only = no) 也可以让大家查询(public = yes)!

[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 samba]# netstat -tlunp | grep ':13'
  
       启动后,记得去察看一下 port 是否有启动!还有,不要忘记了,如果原先就设定防火墙的话,一定要去察看一下防火墙的设定是否已经启动了 137 ~ 139 的登入!!!

[root@test root]# smbclient -L hostname ---->查询该主机的共享内容

====>至此,无需密码的SAMBA服务器全部设定完毕,但需要特别留意的是 Linux 的档案权限与 SAMBA 设定的权限关系!接下来试试需要密码登陆的SAMBA服务器的设定...


         首先我们要有一个概念: SAMBA客户端的权限是在Linux系统权限之下的,即Linux 本身的档案权限大于 SAMBA 对于使用者所设定的权限!且SAMBA 主机所提供能够登入的账号,必须要在 /etc/passwd 里面存在!

>设定lmhosts ---->可以不用设定,在这个档案当中,要设定的数据很简单,就是每一部 PC 的 NetBIOS name 以及对应的 IP 即可,例如:
[root@test root]# vi /etc/samba/lmhosts
127.0.0.1           localhost
192.168.2.89    shmilyhome
192.168.2.88    shmily     ---->这些就是NetBIOS name

>设定 smb.conf 并检验 smb.conf 的设定参数 (例要求: 共享每个人的根目录; 共享/home/public目录)
[root@test samsa]# vi smb.conf
[global]
   workgroup = shmilys        ---->以下设定一般项目: 主机名称、工作群组等
   netbios name = shmilyhome
   server string = shmily's testing SAMBA Server
   client code page = 950     

   security = user            ---->需要登陆信息
   encrypt passwords = yes    ---->密码要求加密
   smb passwd file = /etc/samba/smbpasswd ---->密码档案放在 /etc/samba/smbpasswd里面 , 这三行是关键!

   host allow = 192.168.2.-- ---->设定这个后,未在hosts allow里面规定的IP无法登陆SAMBA主机,若想完全开放IP,就不要设这个项
   log file = /var/log/samba/%m.log
   max log size = 0
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   interfaces = 192.168.2.88
   dns proxy = no

[home]     ---->之下设定每个使用者的根目录
   comment = Home Directories
   browseable = no
   writable   = yes
   valid users = %S       ---->有权限进入者。变量%S代表登陆进来的用户名字,随home而变,故每个使用者都可以进入自己根目录
   create mode = 0664     ---->新建立档案的权限
   directory mode = 0775 ---->新建立目录的权限

[public]
   comment = Public Stuff
   path = /home/public
   public = yes
   writable = yes

[root@test samba]# grep -v '^#' smb.conf |grep -v '^;'|grep -v '^$' ---->设定完毕后退出检验一下

[root@test samba]# mkdir -p /home/public ---->建立需要共享的目录

>根据smb.conf设定,建立一个密码文件
[root@test root]# cd /etc/samba
[root@test samba]# touch smbpasswd
[root@test samba]# chown root:root smbpasswd; chmod 600 smbpasswd

smbpasswd [-adem] username ---->建立、查看、修改或冻结用户SAMBA密码,这个密码与用户在 /etc/passwd底下的密码是不同的
[root@test samba]# smbpasswd -a shmily_liu
New SMB password:

[root@test samba]# testparm                 ---->测试和重启SAMBA服务器
[root@test samba]# /etc/rc.d/init.d/smb restart

[root@test samba]# smbclient -L hostname    ---->客户端的测试

====>设定完毕!

 

 


 

(shmily_soc)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201004/9134.html]
本文出处:百度博客 作者:shmily_soc
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容