花了两个晚上整理出来的,希望对大家帮助
一、Samba软件包介绍
Samba项目开发---http://www.samba.org
二、Fedora core/RedHat Linux提供的软件包
    samba samba服务器软件包
    samba-client samba客户端工具
    samba-common通用工具和库
三、安装Samba软件包
1、安装samba软件包(一般在第三第安装光盘)
   安装samba客户端软件client:
   rpm –ivh samba-client-3.0.0-15i386.rmp
   回车后提示出现错误 如下:
   “ error :failed dependencies :
Samba-common = 3.0.0 is needed by samba-client-3.0.0-15”
   出现这个错误叫依赖性关系出错,就是在安装一个软件包的时候,需要另外一个软件包的支持而出现的错误。解决办法如下:
   安装第一张光盘的rpmdb-fedora这个软件包,可以解决依赖性关系
   命令:进入安装包的目录 rpm –ivh rpmdb-fedora-1-0.20031103.i386.rpm
 
   安装完成后在安装samba软件包
   命令:rpm –ivh –aid samba*.rpm 这样就安装了samba的所有软件包了(客户端和服务器)
 
   查询所安装的软件包,使用管道符号过滤出samba
   命令:rpm –qa | gerp samba
 
   如果查询结果比较长,可使用more,通过管道传递给more
   命令:rpm –ql |more
 
至此,samba软件包安装完成。
2、检查软件包的内容
#rpm -ql samba
#rpm -ql samba-common
#rpm -ql samba-client
四、Samba客户端工具(常用)
1、smbtree(这个工具在我装的redhat9.0中没有)
作用:显示局域网中的所有共享主机和目录列表
用法:smbtree -[-b][-D][-U username%password]
2、nmblookup
作用:显示一台主机的netbios主机名
3、smbclient
作用:显示/登录局域网中的共享文件夹
用法:smbclient -L host
      smbclient //host/share
4、smbtar
作用:远程备份网上邻居的文件(需要稍作修改)
用法:smbtar -s server -u user -p password -x sharename -t output
例:smbtar -s win2000 -u redhat -p redhat -x shartname -t bak.tar
[root@server root]# tar tvf bak.tar
5、smbmount
作用:远程挂载
smbmount //10.0.5.73/share /mnt -o username=yxm%yxm
五、Samba服务器简单配置
1、修改配置文件/etc/samba/smb.conf
workgroup = workgroup            //工作组名
security = share                    //安全级别 有user 、share、
[sharename]
 path=/usr/share/docs              //共享文件的目录位置
 comment=share documents        //对这个共享目录的说明
 public=yes                          //是否公开
2、重新启动smb 服务器
#service smb restart
#chkconfig smb on
六、samba共享目录的访问
    1)设置谁可以访问,谁不可以。
    Hosts dengy =all // all表示所有主机,以“.”结束的ip地址或以“.”开头的域名 或掩码格式。
    Host allow = 10.0.0.  //这个网段内的所有ip地址。
    如下两例:
   【docs】
Hosts deny = 10.0.0.
Hosts allow = 10.0.0.241
这表示拒绝除10.0.0.241外这个网段所有主机。
【redhat】
Hosts allow=10.0.0.
Hosts deny = 10.0.0.241
第二个语句是失效的,因为允许优先,可以使用except语句来实现排除,
格式 “except ip地址”
2)权限的限制
① 共享目录设置有效用户
    【redhat】
     Path= /var/redhat
     Commet=redhat‘sfiles
     Valid users=username @groupname
② 新建samba用户
   #useradd username  //成为samba用户前必须确认首先为系统用户
   #smbpasswd –a username
③ 用户帐号映射
   映射帐号的建立防止知道系统帐号的人对samba服务器进行猜测破解。
   【global】
    Username map=/etc/samba/smbusers
    # smbuseradd unixname:mapname
综合讲解
    Valid users=《username》《@groupname》有效的用户名或组名
    Public =no 不能为匿名访问
    作为samba用户的前提必须是系统用户
    如果存在系统系统用户,不存在samba用户 则使用smbpasswd –a username来添加,如果存在系统用户,也存在samba用户 则使用smbpasswd username即可,这个来实现修改密码。
    用户帐号的映射,为了确保安全使用smbuseradd 增加一个虚拟的用户名
    首先修改配置文件:
    去掉username map =/etc/samba/smbusers前面的分号 映射帐号就×××了。手动实现映射编辑smbusers这个文件 ,增加虚拟帐号 redhat=tom jack,保存推出,重启smb服务 service smb restart 就可以×××了。
3)home目录
Homes 是个特殊的共乡文件夹,是没有path命令的 默认是用户帐号登陆的名字
Valid users=%s 属主 只能看到自己的目录
Browseable=no  是否可看
Writable=yes    是否可写入
一个目录要让客户机写的话要修改两个地方一个是培植文件samb服务器 一个是用户本身可写
4)samba用户的权限
事例:重新建一个目录 test
  Path = /var/redhat
  Public= no
  Valid users= redhat itlab 允许访问文件夹的用户
  Wrte list =redhat        允许写的用户,
此时在一个客户端的windows 2000中通过网络邻居访问test共享文件夹,redhat和itlab都可访问(正常),但是redhat和itlab都不能写入(不正常),原因:在服务器上创建test文件夹的时候使用root用户,所以这个文件夹只有root用户是可完全控制的,redhat可以访问,但不能写入,需要把test这个文件夹加入redhat组。
 
七、samba配置文件详解
samba配置文件的位置在:etc/samba/smb.conf
这个文件里主要有三个字段  global服务器的各种属性
                          Homes字段
                          用户自定义的字段(除了golbal和homes外的)
 # 告诉下面应该这么做,解释信息“#”不可以去掉
 ;注释是一条命令,可以把“ ;”去掉
1)Workgroup= 域名或工作组名
2)Server string = 主机的解释信息例如写成 server string=movies 在客户端使用网络邻居访问是可见这个服务其的备注名字为movies
3)Netbios name= netbios主机名可以替换主机名
4)Securiy= 定义本机用户的安全级别常用的有三种 share/user/server
   Share所有人都可以进去 不需要验证
   User  默认的 所有用户进入必须输入密码验证
 Server 类似user的需要验证,但是他的数据库不是放在本地的 如果使用的是server级别下面要使用password server=server 否则 server是无效的
 5)Log file=日志文件
 6)Encrupt passwords= 是否要使用加密密码必须要与windows保持一直,所以设成yes
 7)Smb passwd file= /etc/samba/smbpasswd   smb密码文件的位置
 8)Include 包含一个外部的配置文件,根据不同用户的需要定制不同用户的文件
9)Interface 在什么接口上是活动的
;Name reslve order=wins iahosts(是一个本机的配置文件) bcast 主机名解析的顺序
;Wins support=yes
;Wins server =a.b.c.d