一、samba软件包安装
samba-3.0.33-3.28.e15.i386.rpm //服务包
samba-client-3.0.33-3.28.e15.i386.rpm //客户端包
samba-common-3.0.33-3.28.e15.i386.rpm //公共包
samba-swat-3.0.33-3.28.e15.i386.rpm //web 包
注:先查看下当前是否安装有以上软件包,如果缺少那个包就安装。
[root@localhost~]# rpm –qa | grep “^samba”
二、samba服务的程序组件
注:samba服务器提供smbd,nmdb 两个服务程序,不同的功能。
smbd---负责为客户机提供服务中的共享资源(目录和文件等)的访问;
nmbd---负责提供基于netblos协议的主机名称解析,以便为windows主机查询服
[root@localhost~]# service smb start //启动samba服务
[root@localhost~]# netstat -natup | grep “mbd” //查询服务端口
三、主配置文件smb.conf
注:samba服务器的常见配置项及说明。
workgroup 设置服务器所在的改革作组名称
server string 设置服务器的说明文字,描述等。
security 设置服务器的安全级别,可设为以下四个中的一个:share (可匿名
访问),user(需由本服务器验证用户名及密码),server(需指定另
一台服务器来验证用户名及密码),domain(由windows域控制器
验证用户名及密码)
log file 设置samba服务器的日志文件,默认设为 /var/log/samba/%m.log
按每个客户机建立一个日志文件其中%m 变量表示客户机名或ip
comment 设置对应共享目录的注释,说明信息
path 设置对应共享目录在服务器中的文件路径
browseable 设置该共享目录在“网上邻居”中是否可见,设置为no时隐藏目录
guest ok 设置是否所有人都可以访问共享目录,与public配置项作用相同
writable 设置该共享目录是否可写,与read only配置项作用相反

构建文件共享服务器
(一)、可匿名访问的共享
注:可匿名访问的共享适用于公开的资源分享,一般只建议提供只读访问。
设置匿名共享时,在主配置文件smb.conf 中主要调整两个地方即可,
其一:将默认级别修改为share;其二:添加一段共享目录配置
#如将本地挂载的光盘目录/media/cdrom/发布为共享,共享名为rhel5
[root@localhost~]# mount /dev/cdrom /media/cdrom/ //挂载光盘
[root@localhost~]# vim /etc/samba/smb.conf
[global]
workgroup =workgroup //使用windows主机默认工作组
security = share //默认允许匿名访问
…..//其他根据要求修改
[rhel5]
comment = rhel 5.5 dvddirectory //描述
path =/media/cdrom //共享目录路径
public = yes //所有人都可访问
read only = yes //只读权限
[root@localhost~]# service smb restart
(二)、需用户验证的共享
注:设置用户验证的共享文件时,在主配置文件smb.conf 中同样需要
调整两个地方;其一:将默认的安全级别修改为user; 其二:添加
共享目录配置,指定用户权限。在此之前,还需先创建授权共享
帐户。
1. 设置用户访问授权
#创建共享用户 vina lisi 确认共享目录
[root@localhost~]# useradd vina //创建系统用户vina
[root@localhost~]# useradd lisi //创建系统用户lisi
[root@localhost~]# pdbedit -a -u vina //再添加共享用户vina
[root@localhost~]# pdbedit -a -u lisi //再添加共享用户 lisi
[root@localhost~]# mkdir /abc/ //新建本地测试目录
#修改smb.conf配置文件,添加名为 [abc]的共享目录配置段
[root@localhost~]# vim/etc/samba/smb.conf
security = user
….//
[abc]
comment = abc //描述
path = /abc/ //共享目录路径
read only =no // 不可写
public = no //不是所有人都可访问
valid users =vina, lisi //有效用户或组@组名
write list =lisi //可写用户
2.确定目录访问授权
[root@localhost~]# chmod 777 /abc/
注:有了用户授权之外,和还需要设置上传的文件,创建子目录的
默认权限,
directory mask= 0755 //上传目录权限
create mask =0644 //文件默认权限
[root@localhost~]#pdbedit -l //列出所有samba共享用户
[root@localhost~]#pdbedit -x -u vina //删除samba用户
用户映射及访问地址限制
一、共享帐号映射(别名)
注:samba共享帐户的映射文件位于/etc/samba/smbusers , 在文件后面添加记录即可。
格式:共享用户名 = 别名1 别名2 ….
[root@localhost~]# vim /etc/samba/smbusers
注:配置好别名记录后,需要修改主配置文件,
添加 [global]
username map = /etc/samba/smbusers
[root@localhost~]# servi ce smb restart
二、访问地址限制
针对访问samba服务器的客户机可以通过“hosts allow ”,”hosts deny” 配置项进行
访问限制,一般应用于[global]全局配置部分,也可应用于某个共享配置段中。限制对象可以使主机名,ip地址或者网络段地址(省去主机部分),多个地址之间以逗号或空格隔开。
[root@localhost~]#vim /etc/samba/smb.conf
hosts allow = 192.168.1. //允许这个网络段地址
一、使用smbclient访问共享文件
1). 查询目标主机的共享资源列表
[root@localhost~]#smbclient -l 192.168.1.1 //查询这个ip主机上的共享资源
2). 匿名访问的文件夹登陆方式
[root@localhost~]# smbclient //192.168.1.1/abc //登陆可以匿名访问的文件夹
3).用户验证文件夹的登陆方式
[root@localhost~]# smbclient -u 用户名 //192.168.1.1/toot
smb: \> pwd //察看当前工作路径
smb: \> ls //列出当前目录下的内容
smb: \> lcd /root/ //将本地目录切换到/root/
smb: \> cd abc/ //切换到共享目录的abc子目录
smb: \abc\> mget test.txt //下载test.txt文件
smb: \abc\> quit //退出共享目录
[root@localhost~]# ls /root/test.txt //确认下载的文件
4). 使用mount 挂载共享文件夹
注:smbclinet 工具可以方便的登陆到samba服务器,但是只由下载到本地以后
才能查看文件内容。而使用mount 工具将共享文件挂载到本地,则通过本
地的挂载点目录即可直接使用共享文件夹的内容。
[root@localhost~]# mount –o username=用户名 //192.168.1.1/toot /mnt
[root@localhost~]# cd /mnt //进里面直接操作