首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>软件应用>正文

Samba使用大全 Samba服务器应用介绍

http://www.oklinux.cn  2007-04-12  来源:           会员收藏  游客收藏  【 】 

Samba协议基础

在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议。这个协议被Microsoft用于它们Lan Manager和Windows NT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。

随着Internet的流行,Microsoft希望将这个协议扩展到 Internet上去,成为Inter net上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common Internet File System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。

因此,为了让Windows和Unix计算机相集成,最好的办法即是在Unix计算机中安装支持SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,就能如同使用Windows NT服务器一样,使用Unix计算机上的资源了。Samba是用来实现SMB的一种软件,它的工作原理是,让NETBIOS(Windows95网络邻居的通讯协议)和SMB(Server Message Block)这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让Unix计算机可以在网络邻居上被Windows 计算机看到。它的功能有:

共享Linux磁盘给Win95/NT

共享Win95/NT磁盘给Linux机器

共享Linux打印机给win95/NT

共享win95/NT打印机给Linux机器。

同时它的文件服务功能比NT系统还高,而且在Windows2000之前就提供了用户磁盘空间限制的功能。

Samba的配置

在我写这篇文章的时候,Samba的版本已经到了2.2.2了,需要的可以通过 samba.org得到最新的rpm安装包。然后执行rpm ?Uvh samba-2.2.2-20011013.i386.rpm来安装或者升级它。安装完后,可以看见/etc/samba这么一个目录,里面存放和 Samba相关的一些文件,最主要的是smb.conf,现在根据配置文件讲讲它的配置选项:

全局设置:

workgroup = MYGROUP

定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)。

server string = MY Samba Server

设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用samba设定的变量。这里说一下samba定义的变量:

%S = 当前服务名(如果有的话)

%P = 当前服务的根目录(如果有的话)

%u = 当前服务的用户名(如果有的话)

%g = 当前用户说在的主工作组

%U = 当前对话的用户名

%G = 当前对话的用户的主工作组

%H = 当前服务的用户的Home目录

%v = Samba服务的版本号。

%h = 运行Samba服务机器的主机名

%m = 客户机的NETBIOS名称

%L = 服务器的NETBIOS名称

%M = 客户机的主机名

%N = NIS服务器名

%p = NIS服务的Home目录

%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)

%d = 当前服务进程的ID

%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)

%I = 客户机的IP

%T = 当前日期和时间

hosts allow = 网络或者主机

这里可以设置允许访问的网络和主机IP,比如允许192.168.1.0/24和 192.168.2.1/32访问,就用host allow = 192.168.1. 192.168.2.1 127.0.0.1(网络注意后面加”.”号,各个项目间用空格隔开,记得把本机也加进去)

printcap name = printcapFile

到printcapFile(一般是/etc/printcap)这个文件中取得打印机的描述信息

load printers = yes|no

设定是否自动共享打印机而不用设置下面的[printer]一节的相关东西

printing = PrintSystemType

定义打印系统的类型,缺省是lprng,可选项有:bsd, sysv, plp, lprng, aix, hpux, qnx。

guest account = pcguest

定义游客帐号,而且需要把这个帐号加入/etc/passwd,不然它就用缺省的nobody

log file = LogFileName

定义记录文件的位置LogFileName(一般是用/var/log/samba/%m.log)

max log size = size

定义记录文件的大小size(单位是KB,如果是0的话就不限大小)

security = security_level

定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:

share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。

user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。

server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。

domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。

后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。

password server =

当前面的security设定为server或者domain的时候才有必要设定它。

password level = n

这是设定针对一些SMB客户像OS/2之类而设的,这样的系统在发送用户密码的时候,会把密码转换成大写再发送,这样就和samba的密码不一致,这个参数可以设定密码里允许的大写字母个数,这样samba就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。n越大,组合的次数就越多,验证时间就越长,安全性也会因此变得越低。例如n=2,用户的密码是 abcd,但发送出去其实是ABCD,samba就会把这个ABCD进行大小写重组,组合后的结果可以是: Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。

所以如果没有必要,就把n定为是零。这样的话samba只尝试两次,一个是接收到的密码,另一个尝试的是这个密码都是小写的情况。

username level = n

这个是对于用户名的情况,说明和上面一项类似。

encrypt passwords = yes|no

设置是否对密码进行加密,samba本身有一个密码文件 /etc/samba/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和 Linux里的/etc/samba/smbpasswd密码文件进行验证。但是在Windows 95 OS/R2以后的版本和Windows NT SP3以后的版本缺省都不传送明文密码,要让这些系统能传送明文密码必须在其注册表里更改,比较麻烦,好的方法就是把这里的这个开关设置为yes。

smb passwd file = smbPasswordFile

设置存放samba用户密码的文件smbPasswordFile(一般是/etc/samba/smbpasswd)。

ssl CA certFile = sslFile

当samba编译的时候支持SSL的时候,需要指定SSL的证书的位置(一般在/usr/share/ssl/certs/ca-bundle.crt)。

unix password sync = yes|no

passwd program = /usr/bin/passwd %u

passwd chat = *New*UNIX*password* %n

*ReType*new*UNIX*password* %n

*passwd:*all*authentication*tokens*updated*successfully*

这三项设置能否从windows的应用程序修改unix系统的用户密码

username map = UsermapFile

指定用户映射文件(一般是/etc/samba/smbusers),当我们在这个文件里面指定一行root = administrator admin的时候,客户机的用户是admin或者administrator连接时会被当作用户root看待。

include = MachineConfFile

指定对不同机器的连接采用不同的配置文件MachineConfFile(一般为了灵活管理使用/etc/samba/smb.conf.%m,由于采用了samba的变量,把配置文件和客户机的NETBIOS名称关联起来,能很容易地控制这些客户机的权限和设置)。

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

这个是网络socket方面的一些参数,能实现最好的文件传输性能。相关的选项还有 SO_KEEPALIVE、 SO_REUSEADDR、SO_BROADCAST、IPTOS_LOWDELAY、IPTOS_THROUGHPUT、SO_SNDLOWAT (*)、SO_RCVLOWAT(*),带*号的要指定数值。一般如果在本地网络,就只用IPTOS_LOWDELAY,如果是有一个本地网络的,就用 IPTOS_LOWDELAY TCP_NODELAY,如果是广域网络,就试试IPTOS_THROUGHPUT。

interfaces = interface1 interface2

如果有多个网络接口,就必须在这里指定。如interface = 192.168.12.2/24 192.168.13.2/24

remote browse sync = host(subnet)

这里指定浏览列表同步信息从哪里取得, 如果用host(比如192.168.3.25)或者整个子网(192.168.5.255)。

共3页: 上一页 1 [2] [3] 下一页

上一篇: Linux技巧 用CUPS打印DVI文件的方法   下一篇: Linux操作系统下目录切换的技巧总结


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
· Linux操作系统下目录切换的技巧总结
· Linux技巧 用CUPS打印DVI文件的方法
· Linux系统下遥控器的配置与使用方法
· RedHat 9.0升级openssh
· Linux系统下应用知识大荟萃
· fcitx在RHEL 4上的安装
· Linux上安装Apache+Php+Mysql的过程
· VMware RAID5实验
· 分析一个linux下的蠕虫
· Linux系统文件权限隐藏的细节深入分析
· Linux上五十个最佳的FireFox扩展插件
· 制作Linux发行版系统光盘的方法介绍
· MySQL数据库应该如何对抗解密高手
· Linux系统的文件模式和访问权限介绍
· core文件的简单介绍
· 在Linux下处理.zip文件
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Linux系统下源码阅读工具ctags+vim
·Linux操作系统维护常用工具Sysstat介绍
·Tcpdump:Linux下基于命令行的抓包工具
·Ubuntu Linux系统下的两个网络扫描工具
·Linux系统的股票行情分析软件
·在Linux操作系统下安装杀毒软件AntiVir
·Linux系统下一款比较易用的截图工具
·Excel电子表格导出TXT在Linux下无法显
·如何才能解决Scim和Skype之间的冲突问
·使VMware下的Ubuntu支持鼠标滚轮的方法
·Wine:Linux系统上运行Windows程序的平
·Linux系统下Matlab的安装设置
  阅读排行
·基于libmad 的简单MP3流媒体播放器的实
· Oracle 10g for ubuntu 安装指南
·Wine的安装配置
· 下BT聊QQ !PS3安装Linux ubuntu 7.10
·一步一步安装服务器监视软件MRTG
·用Geronimo部署blog 和wiki 模块
·嵌入式Linux 中的应用中的GTK+
·Linux 的版本控制
·Linux 上的数据可视化工具
·Linux下tar bz gz等压缩包的压缩和解压
·充分利用Linux操作系统安全防护工具
·使用自由软件Rexx 的实现来编写脚本
·在Linux上仿真老式操作系统
·制作在软盘上跑的Linux引导器详细过程
·使用 freeVSD强化您的开发环境
网摘收藏: