Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124396
  • 博文数量: 37
  • 博客积分: 2094
  • 博客等级: 大尉
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-14 08:39
文章分类
文章存档

2010年(37)

分类: LINUX

2010-03-17 15:49:37

SMB协议:(Server Message Block)服务信息块,它提供了在网络上的不同计算机之间共享文件、打印机等
Samba是一组软件包,使Linux支持SMB协议,该协议是TCP/IP上实现的,使windows和linux可以集成并互相通讯
Samba的核心是两个守护进程smbd和nmbd程序
smbd进程的作用:处理到来的SMB数据报,为使用该软件包的资源与linux进行协商
nmbd进程的作用:使其他主机或工作站能浏览linux服务器
来看看相关软件包:
[root@uplooking ~]# rpm -qa | grep samba
samba-common-3.0.33-3.7.el5
samba-client-3.0.33-3.7.el5
samba-3.0.33-3.7.el5
samba的主配置文件是/etc/samba/smb.conf,其中有大量的注释行,有效配置并不多,来看看其中的一个全局配置
[root@uplooking samba]# grep -v "#" smb.conf | grep -v "^;" | uniq
 
[globa]
 
        workgroup = MYGROUP
        server string = Samba Server Version %v
 
        security = user
        passdb backend = tdbsam
 
        load printers = yes
        cups options = raw
 
SAMBA安全级别
1.share:最低的安全级别,允许guest用户登陆(不需要密码)
2.user:这是windows的默认安全等级,检查帐号和密码的工作由提供的samba服务器负责
3.server:在此等级,检查帐号和密码工作可指定另一台windowsNT/2000或samba服务器负责
4.domain:在此等级需要指定windows NT/2000服务器来检验用户的身份
下面我们就来搭建一个samba服务器:(上面显示软件已经安装完毕)

第一步新建一个共享目录为/home/test,并在test目录里面创一个名为shrek的文件
[root@uplooking home]# mkdir test
[root@uplooking home]# ll
总计 4
drwxr-xr-x 2 root root 4096 12-19 15:38 test
[root@uplooking home]# cd test/
[root@uplooking home]# vim shrek
[root@uplooking home]# cat shrek
不经历风雨,怎么见彩虹;没有人能够随随便便成功!
 
第二步修改samba的主配置文件,添加如下内容:
[public]
 
        path = /home/test
        public = yes
        writable = yes
保存退出!重新启动服务!
如此,一个最简单的samba服务配置成功了!我们可以来测试一下:
[root@uplooking ~]# smbclient -L 202.100.1.158
Password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]
  
    Sharename      Type      Comment
    ---------      ----      -------
    public         Disk     
    IPC$           IPC       IPC Service (Samba Server vision 3.0.33-3.7.el5)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]
smbclient -L可以用来列出samba服务器上的共享资源,同样也能用来登录samba服务器
[root@uplooking samba]# smbclient //202.100.1.158/public
Password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]
smb:\>
当配置文件修改结束,可以用testparm来测试一下正确性
同时也可以使用命令来查看一下samba服务器上的共享资源被使用的情况,使用samstatus命令
一些关于samba服务参数的介绍:
smb.conf文件结构:分为[global]全局设置和用户自定义共享
smb.conf文件访问控制参数:
writable:指定共享的路径是否可写
browseable:指定共享的路径是否可浏览(默认为可以)
Public(guest ok)指定是否允许guest帐号访问
read list 设置只读访问用户列表
write list设置读写访问用户列表
valid users指定允许使用服务的用户列表
[root@localhost samba]# grep -v "#" smb.conf |grep -v ";" |uniq
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
Workgroup
说明:这个参数用来指定samba所要加入的工作组
netbios name
说明:这个参数指定samba的netbios名,可以不设置,samba将会使用机器的DNS名的第一部分,如果你的机器的DNS名是host1.domain,就用host1 例如:
netbios name = public
passdb backend = tdbsam
tdbsam用户验证文件存储系统默认使用tdbsam的安全帐户管理模式,tdbsam:该方式则是使用一个数据库文件来建立用户数据库
pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
host allow
说明:这个参数是访问控制的白名单,指定那些机器可以访问samba,例如:host allow = 192.168.1.1  指定192.168.1.1这台机器可以访问。
支持的地址格式有:
Host allow = 192.168.1.0/255.255.255.0
Host allow = 192.168.1.
Host allow = .uplooking.com
如果不允许子网里的一台机器访问,可以这样设:host allow = 192.168.1. EXCEPT 192.168.1.33 禁止192.168.1.33访问。
host deny
username map = /etc/samba/smbusers
说明:samba账号映射,相当于虚拟账号功能,例如有一个samba账号uplooking,通过此配置项可以映射成多个虚拟账号abc def ghi等多个虚拟账号,需要在smbusers文件里添加账号的对应关系。
[root@localhost samba]# cat smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
uplooking = abc def ghi
max log size
说明:这个参数指定最大日志文件的大小,以KB为单位。
例如: max log size = 50
max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
socket address=192.168.0.12
修改监听地址,绑定ip。
create mask = 0600   //== create mode
创建文件的权限为600
directory mask = 0700   //==directory mode
创建目录的权限为700
共享资源参数:
comment = All User
对共享目录描述性说明
valid users
说明:指定共享资源的有效用户,即允许访问该资源的用户。
例如:valid users = user1, user2 @用户组
invalid users 与上面相反
read list = user(@group)
write list = user(@group)
browseable = no
隐含共享
Mount -t cifs -o username=user1 //ServerIP /mnt/smb
查看服务状态:
smbclient -L //serverIP
smbstatus
如下配置:
[dir]
valid users = abcdef @mn
write list = abcdef @staff
read list =
@代表组的意思
使用smbclient命令访问共享
smbclient//192.168.1.1/dir -U username
使用mount和smbmount命令挂载远程共享
mount -t smbfs-o username=administrator //192.168.1.1/dir /mnt/smb
smbmount//192.168.1.1/dir /mnt/sbm-o username=name

   
 
 

 

 

 

 

 

 

 


阅读(1361) | 评论(0) | 转发(0) |
0

上一篇:FTP服务

下一篇:DHCP服务

给主人留下些什么吧!~~