花了两个晚上整理出来的,希望对大家帮助
一、 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