`
deepfuture
  • 浏览: 4332302 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:79402
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:68349
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:101473
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:281118
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14595
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:65542
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:31309
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45189
社区版块
存档分类
最新评论
阅读更多

 samba server的配置文件在/etc/samba/下的smb.conf打开一个终端中输入: gedit /etc/samba/smb.conf 也可以用vi编辑.由于文件太长,我把个人认为没有用的东东删除了,主要是一些注释.下面偶解释一下主要字段的意思.由于我的这个文件配置过了,可能你的机器和我的不一样.
======================= Global Settings =====================================

[global] //设置samba服务整体环境

workgroup = hackase //设置工作组名

server string = angel server //服务器的名说明

 

; hosts allow = 192.168.1. 192.168.2. 127. //限制可访问此服务的IP范围,默认是全部

允许的,要是想设设置去掉前面的";"

printcap name = /etc/printcap //打印机配置文件

load printers = yes //是否共享打印机

 

# bsd, sysv, plp, lprng, aix, hpux, qnx, cups

printing = cups //打印机的类型.标准打印机类型包括以上几种.

 

; guest account = pcguest //pcguest为用户名.可改去掉前边的";"让用户以

pcguest身份匿名登录,但保证/etc/passwd中有此人.

 

log file = /var/log/samba/%m.log //为登录服务器的用户建立不同的日志文件.

 

max log size = 0 //日志文件的大小,"0"代表无限制

 

//以下是smb.conf文件对服务器安全级别的设置

 

security = SHARE //安全性的级别共四种.share、user、server、domain

 

; password server = 密码验证服务器.

; password level = 8 //密码级别

; username level = 8

 

encrypt passwords = yes //用户密码加密,当然也可以不加密

 

smb passwd file = /etc/samba/smbpasswd //将密码服务器设置为samba server.

需要这个东东来指定验证文件.这个是文件的路径,如果samba server是指定的win

server这个不须要

 

; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt

 

unix password sync = Yes

passwd program = /usr/bin/passwd %u

passwd chat = *New*password* %n\n *Retype*new*password* %n\n

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

 

pam password change = yes

 

; username map = /etc/samba/smbusers //如果每个windows用户在samba服务器

中有帐户这个可以不设

; include = /etc/samba/smb.conf.%m

 

obey pam restrictions = yes

 

; interfaces = 192.168.12.2/24 192.168.13.2/24 如果多网段要在这里列出

 

; remote announce = 192.168.1.255 192.168.2.44

 

; local master = no

 

; os level = 33

 

; domain master = yes

 

; preferred master = yes

 

; domain logons = yes

 

; logon script = %m.bat

 

; logon script = %U.bat

 

; logon path = \\%L\Profiles\%U

 

; wins support = yes //wins server支持

 

; wins server = w.x.y.z

 

; wins proxy = yes //wins 代理设置

 

dns proxy = no //dns代理设置

 

; preserve case = no

; short preserve case = no

 

; default case = lower

 

; case sensitive = no

 

#============================ Share Definitions ==============================

[homes] //用户访问自已目录的设置

comment = Home Directories //说明(以下同理)

browseable = no//设定目录可不可以别人浏览

writeable = yes//用户写入自己的权限

valid users = %S

create mode = 0664

directory mode = 0775

 

 

; [netlogon] //此段域用户登录目录设置

; comment = Network Logon Service

; path = /usr/local/samba/lib/netlogon

; guest ok = yes

; writable = no

; share modes = no

 

;[Profiles]

; path = /usr/local/samba/profiles

; browseable = no

; guest ok = yes

 

[printers] //打印机设置

comment = All Printers

path = /var/spool/samba

browseable = no

 

printable = yes

 

;[tmp] //用户共享资源设置

; comment = Temporary file space

; path = /tmp //可以自定义目录,去掉前边的";"就OK了

; read only = no //是否只读或可写

; public = yes

 

;[public] //用户共享资源设置

; comment = Public Stuff

; path = /home/samba

; public = yes

; writable = yes

; printable = no

; write list = @staff

 

 

;[fredsprn]

; comment = Fred's Printer

; valid users = fred

; path = /home/fred

; printer = freds_printer

; public = no

; writable = no

; printable = yes

 

;[fredsdir]

; comment = Fred's Service

; path = /usr/somewhere/private

; valid users = fred

; public = no

; writable = yes

; printable = no

 

;[pchome]

; comment = PC Directories

; path = /usr/local/pc/%m

; public = no

; writable = yes

 

;[public]

; path = /usr/somewhere/else/public

; public = yes

; only guest = yes

; writable = yes

; printable = no

 

;[myshare]

; comment = Mary's and Fred's stuff

; path = /usr/somewhere/shared

; valid users = mary fred

; public = no

; writable = yes

; printable = no

; create mask = 0765

 

[my work] //偶的东东

comment = is me work

path = /root/my work

valid users angel

public = yes

writeable = yes

 

了解smb.conf的文件就好办了.我们开始对samba server的四个安全级别分别讲解.

 

1、share级配置

 

这个在四个等级中是最低的,方法也是最简单.我们只要对smb.conf文件修改一下就可以了.

 

workgroup = hackase

server string = angel server

hosts allow = 192.168.1. //限制192.168.1的IP网段可以防问

printcap name = /etc/printcap

load printers = yes //共享打印机

printing = cups //打印机用linux标准的

guest account = angel

log file = /var/log/samba/%m.log

max log size = 20

security = share

===================================================================

其他的设置默认就可以了,也可以像我把所有的注释删除.[tmp]这个字段的";"去掉.

路径可以更改. 重启一下服务 /etc/samba/smb restart //

 

service smb restart 也可

 

用testparm测试我们配置的文件是否正确:

===================================================================

[root@localhost root]# testparm //测试时[printers]注释掉了所以这里没有.

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[tmp]"

Processing section "[my]"

Loaded services file OK. //如有错误,会在这列出错误的地方.

Press enter to see a dump of your service definitions

==================================================================

用smbclient命令查看网络共享情况

===================================================================

[root@localhost etc]# smbclient -L localhost //本机名为localhost

Password:

Domain=[HACKBASE] OS=[Unix] Server=[Samba 2.2.7a]

 

Sharename Type Comment

--------- ---- -------

tmp Disk Temporary file space

my Disk is me

IPC$ IPC IPC Service (angel server)

ADMIN$ Disk IPC Service (angel server)

root Printer Home Directories

 

Server Comment

--------- -------

 

Workgroup Master

--------- -------

=======================================================================

2、user级配置

 

user比share级安全级别高一点点,很简单的,可以在share基础上改一下就可以了.

改一下security = share字段为:security = user.在加上如下字段:

guest account = angel //机器上有这个用户名,如果你没有那就建一个吧!

encrypt passwords=yes

smb passwd file=/etc/samba/smbpasswd

(1)生成口令文件.

 

#cat/etc/passwd | mksmbpasswd.sh>/etc/samba/smbpasswd

 

本命令将生成口令文件"/etc/samba/smbpasswd" 这个就是我们

刚加上的"smb passwd file=/etc/samba/smbpasswd"

(2)我们知道建账户是建在etc/passwd文件里,我们须要用smbpasswd命令

为刚才建立的账名设置samba server口令. 格式为:smbpasswd angel

 

(3)重启samba server服务

 

user级的也OK了,你可以用testparm and smbclient命测试.windows用户想

访问就要输入angel and passwd.这个就不是谁都可以访问你的共享

 

资源了.

 

3、server 级配置

server级比user级也高那么一点,只需要user级配置上修改一下就OK了.

 

(1)security = user字段为:security = server

 

(2)加上password server = ****** //密码服务器,这个可以是你的windows主域控制器,也

可以是别一个samba server服务器(名子无意思)

 

(3)注释smb passwd file=/etc/samba/smbpasswd

 

(4)重启samba server服务,你可以用testparm and smbclient命测试.

 

好了,又完事一个现在如果一台windows机器登录******(password server =

******设置的)域服务器的时候,也就同登录上了samba server,如

 

果你以是*****主控域的计算机,那你就可以输入你自己的账号密码打开samba server的文件了,

但是你要保证*****和sambs server的账号

本文来自: 站长(http://www.qqcf.com) 详细出处参考:http://study.qqcf.com/web/240/26752.htm

如果你正在处理一个跨操作平台的网络,网络中可能包括Windows,Linux和UNIX的工作站,服务器,那你肯定对怎样在这些不同平台上实现网络打印服务感兴趣

上星期,介绍了怎样在Linux上实现网络打印服务。在这部分中,你将学习怎样为Windows 95/98/NT/2000的用户实现这项服务。通过修改你服务器上的Samba配置,你可以让网络中的Windows用户共享你的本地打印机。

请注意,我假设你已经在Linux和Windows之间成功的安装和配置了Samba的文件共享。如果你还没有安装和配置Samba,或者你的Samba不能正常工作,请看文章“省钱之道:用Linux的Samba代替NT服务器”。为了实现我们的目标,我也假设你已经成功安装了一个本地打印机。

配置Samba实现本地打印机共享

在开始之前,确信你的Samba运行正常,并且Windows用户可以在网络邻居的列表中看到Samba服务器。我将介绍修改smb.conf文件,使得网络中的Windows用户可以通过Samba服务器使用打印机。

为了配置smb.conf文件实现共享一个本地打印机,检查你Linux下的打印机是否工作正常。下一步,在Windows客户端安装同一个打印机。这样做的话,你需要Windows下打印机的安装盘。开始安装打印机,点击开始,选择打印机,并且双击添加打印机。

在打印机安装向导中,按照屏幕上的说明一步一步,直到在列表中选择打印机的名称。要点:写出打印机的准确名称,注意大小写(名称对大小写是敏感的)。例如,Windows中使用的Epson Stylus 740打印机应该输入如果需要,在安装完成后要重启机器。在Samba服务器上,以根用户登录(或是超级用户),用你习惯的文本编辑器打开/etc/smb.conf或者/etc/samba/smb.conf。例如,vi /etc/smb.conf。

在[global]这一节,找到打印名称这行,如果你想使Windows用户可以使用所有本地打印机,去掉这一行,并且如果文件中没有这些内容的话,添加上:

printcap name = /etc/printcap

load printers = yes

如果只想让其他用户用一个打印机,你不要删掉那行,也不用添加什么。需要注意的是在大多数从BSD发展而来的Linux系统上,Samba假设你在用默认的打印系统。如果你用的是其他打印系统,在Linux的打印系统配置中,找到相应的行,改变默认设置(bsd)。选择包括sysv,plp,lprng,aix,hpux和qnx。如果不能确认你的Linux配置正在使用的打印系统,你可以查看一下相关文件,但大多数情况下都是默认的。

下一步,使所有的本地打印机都实现共享。所有的打印机都在/etc/printcap文件的打印机列表中,在/etc/smb.conf文件尾添加以下服务条目:

[printers]

writable = no

path = /tmp

printable = yes

如果只要共享一个打印机,在smb.conf文件的[global]小节添加一个自动服务行。和在/etc/printcap中的相同,这行指定你想使用的打印机名称。下行中在lp填写默认打印机的名称:

auto services = lp

而且,仿照下面创建一个打印机定义,添加到[services]小节中(在/etc/smb.conf文件末尾):

[lp]

printable = yes

comment = Epson Stylus (Color)

public = yes

writable = no

browseable = yes

printer driver=EPSON Stylus COLOR 740

定义中的打印机名是lp,这个名称必须和上面自动服务行中的名称相一致,并且也要和在/etc/printcap文件中定义的打印机名称相同(或打印机的别名)。需要注意的是,打印机驱动行需要你正确的输入Windows中的打印机信息(在这里,EPSON Stylus COLOR 740,还是需要注意大小写)。

最后,保存/etc/smb.conf文件。退出文本编译器,键入/etc/init.d/rc.d/smb重启Samba。

检测安装

在其中一台Windows工作站上检测你的安装成果

。用用户的Windows网络用户名和密码登录,双击网络邻居,双击Linux系统的图标后看看Samba打印机是否显示出来。如果点击右键选择安装,你可以看到打印机安装的对话框。在开始安装的时候,用户不需要关心打印机的牌子和型号,因为打印机的名称以Windows认可的某种方式定义。但是,用户还是需要打印机的安装盘,如果Windows本来就支持这种打印机的话,只要Windows的安装盘就可以了。

打印机驱动器定位

打印机驱动器定位是Samba的一个选项,使你能够指定打印机驱动软件的位置。虽然你可以在共享的Linux目录中选择适合打印机驱动器和相关文件的选项,但这个选项对许多打印机驱动器不起作用,而且你也可能因为在网络中没有得到使用软件的许可而侵犯了作者了的版权。

Samba打印故障处理

如果在Linux系统上你的打印机可以正常工作,但不能通过Samba实现打印服务,用超级用户登录,用文本编译器打开/etc/smb.conf,仔细检查你的输入。运行testparm /etc/smb.conf,仔细查看输出结果,找出错误标志。确信/dev/null对任何用户都是可写的(做法是:键入ls -l /dev/null,按回车,查看文件读取权限)。Samba通过/dev/null来忽略不需要的输出。如果这个文件不是对所有用户可写的,用超级用户登录,键入chmod a+w /dev/null,按回车。如果你的打印机只输出代码而不是你想要的图形,在/etc/samba.conf文件的打印机定义中添加postscript = yes。

 

 

一、Samba简介

给Windows客户提供文件服务是通过samba实现的,凡架设过MS Windows网络的人都知道MS Windows网络的核心是SMB/CIFS,而samba也是一套基于UNIX类系统、实现SMB/CIFS协议的软件,作为UNIX的克隆, Linux也可以运行这套软件。和NT相比较,samba的文件服务功能一点也不亚于NT,效率很高,借助Linux本身,可以实现用户磁盘空间限制功能,NT到4.0版本还是无法实现这点,samba由samba小组(http;//samba.org)开发,更新速度很快,目前最高的版本是 2.0.7版,是2000年4月25日发布的,每个更新版本在功能上都所增强,也修复了已知的BUG。本章所涉及到的技术内容以2.0.3版蓝本。目前各种Linux发布大都包含这套软件,如果你的Linux发布是Read Hat,则是以RPM形式提供,可以在安装Linux的时候选择这个软件,也可以单独安装,以root身份。rpm -i samba-2.0.3-8.i386.rpm,就可以了。

如果你的Linux发布没有包含这个软件,可以从ftp;//samba.org/pub/samba去下载。另外,您的Linux的核心要支持 smbfs,一般各种发布已经把smbfs的支持包含进去,如果没有包含的话,就要重新编译核心,获得smbfs支持,具体怎么样编译核心请参阅相关文章。

由于本章的内容是基于文件服务器, 重点介绍samba在文件服务器上的应用。目前samba还不能完全代替Windows NT,尤其是把samba设置成PDC,最好不要这样做,NT PDC非常复杂,samba还只能实现其中一部分功能。希望未来的版本可以做到。

这套软件由一系列的组件构成,主要的组件有:

smbd SMB服务器,给SMB客户提供文件和打印服务;

nmbd, Netbios 名称服务器,提供Netbios名称服务和浏览支持,帮助SMB客户定位服务器;

smbclient, SMB客户程序,用来存取SMB服务器上的共享资源;

testprns 测试服务器上打印机访问的程序;

testparms 测试Samba配置文件的正确性的工具;

smb.conf samba的配置文件;

smbstatus 这个工具可以列出当前smbd服务器上的连接;

make_smbcodepage 这个工具用来生成文件系统的代码页;

smbpasswd 这个工具用来设定用户密码;

swat samba的Web管理工具。


二、怎么样配置samba

实际上,samba安装完后,只要把/etc/smb.conf这个文件里的workgroup=XXXXX这个参数该为您的工作组,启动 samba就可以运行了,但这根本不能符合我们的需要。samba的配置都是围绕smb.conf来进行的,配置方式有很多种,如果熟练的话可以手工编辑这个文件,也可以通过linuxconf来配置,而且samba本身带了一个基于web的管理工具swat,使用901端口,安装完samba后,它会在您机器的/etc/services的尾部加上一条:

swat 901/tcp #Add swat service used via inetd在inetd.conf里填上:

swat stream tcp nowait.400 root /usr/sbin/swat swat在浏览器的地址栏里键入 http://youhostname:901/ 就可以进入swat对samba进行管理。下面就介绍怎么样手工配置这个文件以达到让samba成为一个符合需求的文件服务器。

先看看一小段的smb.conf:

# smb.conf example   [global]   workgroup = WORKGROUP   server string = Samba Server   hosts allow = 192.168.1. 192.168.2. 127.   load printers = no   printcap name = /etc/printcap   guest account = guest   log file = /usr/local/samba/var/log.%m   max log size = 50   security = user   socket options = TCP_NODELAY   [homes]   comment = Home Directories   browseable = yes   writable = yes   [printers]   comment = All Printers   path = /usr/spool/samba   browseable = no   guest ok = no   writable = no   printable = yes   printer driver = Epson LQ-1600K   [tmp]   comment = Temporary file   path = /tmp   read only = no   public = yes   [public]   comment = Public Zone   path = /home/samba   public = yes   writable = yes从上面的例子可以看出,smb.conf的格式和Windows里的INI文件很像,含有多个段,每个段由段名开始,一直到下个段名,每个段名放在方括号中间。段里的参数的格式是:名称 = 值。

文件里的每个段名、参数以及注释都只能占一行,换句话说就是一行里只能写一个段名或参数或注释,如果一行写不下或不想把一行写的过长,可以在行尾用""来表示续行。段名和参数名不分大小写。可以有注释,注释以;或#开始到该行结束。

除了[global]段外,所有的段都可以看作是一个共享资源,段名是该共享资源的名字,而段里的参数就是共享资源的属性。[global], [homes] 和 [printers]这三个段是比较特殊的,把在后面说明。而下面的注意事项则是针对普通的段。

一个共享资源段由要提供访问的路径和附加的访问权限组成,可以是文件资源或打印资源。共享资源段可以给guest级的用户服务,一般来说guest 用户是不需要密码的,如果给guest提供服务,guest的权限是根据UNIX里的guest帐户来赋予。如果共享资源段不是给guest提供服务的,则访问这样的段需要客户的密码。由于赋予用户对共享资源段的访问权限是基于该用户在UNIX系统的对该资源的访问权限,所以服务器是不能赋予超过UNIX系统赋予该用户的权限的。

例如:

下面的共享资源段的例子定义了一个文件共享,用户对路径/home/abc有写入的权限,共享资源段名是abc,也就是共享名。

[abc]   path = /home/abc   writeable = true1.段

而这下面的段定义了一个打印共享,共享是只读的,但可打印,就是说唯一允许的写访问就是打开、写入和关闭脱机文件。

[myprinter]   path = /usr/spool/public   read only = true   printable = true   guest ok = true特殊段:

[global] 段

在这个段的参数是全局有效的。

[homes] 段

当用户请求一个共享时,服务器把在存在的共享资源段中去寻找,如果找到匹配的共享资源段,就使用这个共享资源段。如果找不到,就把请求的共享名看成是用户的用户名,并在本地的password文件里找这个用户,如果用户名存在且用户提供的密码是正确的,则以这个home段克隆出一个共享提供给用户。这个新的共享的名称是用户的用户名,而不是home,如果home段里没有指定共享路径,就把该用户的宿主目录(home directory)作为共享路径。

通常的共享资源段能指定的参数基本上都可以指定给[home]段。但一般情况下[home]段有如下配置就可以满足普通的应用。

[homes]   writeable = yes注意,如果在[home]段里加了guess access =ok, 所有的用户都可以不要密码就能访问所有的宿主目录!

[printers] 段

该段用于提供打印服务。

如果定义了[printers]这个段,用户就可以连接在printcap文件里指定的打印机。当一个连接请求到来时,smbd去查看配置文件里已有的段,如果和请求匹配就用那个段,如果找不到匹配的段,但[home]段存在,就用[home]段。否则请求的共享名就当作是个打印机共项名,然后去寻找适合的printcap文件,看看请求的共享名是不是个有效的打印共享名。如果匹配,那么就克隆出一个新的打印机共享提供给客户。

注意,[printers]服务必须是printable,如果指定为其它,服务器把拒绝加载配置文件。

通常指定的路径应该任何人都有写入权限。

[printers]   path = /usr/spool/public   writeable = no   guest ok = yes   printable = yes   printer driver = Epson LQ-1600K()


2.参数

段里可以指定的参数非常多,有些参数是全局段才可以用的,而有些参数是任何段都可以用的,先介绍一些基本参数,明白这些基本参数,基本上就可以一般性地应用samba了,如果要更精细地控制samba,可以继续参考一些高级配置。另外,本章假设读者对MS WINDOWS 网络是熟悉的,不熟悉的可以参考相关资料。

全局参数

2.1 基本参数

workgroup

说明:这个参数用来指定samba所要加入的工作组,另外如果在设置了security=domain,则workgroup可以指定域名。例如: workgroup = wgp1。指明工作组为wgp1 。

netbios name

说明:这个参数指定samba的netbios名,可以不设置,samba把会使用机器的DNS名的第一部分,如果你的机器的DNS名是 host1.domain,就用host1 例如:netbios name = public。指定NetBios名为public。

server string

说明:这个参数指定在浏览列表里的机器描述,和MS WINDOWS 里配置网络时的描述是一样的。可以是任何字符串。也可以不填,samba会用缺省的 samba %v,即samba 尾随它的版本号,不过如果要模仿NT象一点的话,可以填一下。例如:

server string = Master File Server2.2 安全参数

security

说明:这是个重要的安全配置参数,有4个值,分别是share、user、server和domain,定义了samba的基本安全级,通常是 user。

security = user这是samba的默认配置,这种情况下要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。

securtiy = share这是几乎没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源

security = server和user安全级类似,但用户名和密码是递交到另外一个SMB服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级,从用户端看来,server和user这两个级别是没什么分别的。

security = domain这种安全级别要求网络上存在一台NT PDC,samba把用户名和密码递交给NT PDC去验证。

从用户端看来,user级以上的安全级其实是没什么分别的,只是服务器验证的方式不同,但这三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。

encrypt passwords

说明:是否对密码进行加密,samba本身可以维护一个密码文件/etc/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和Linux里的/etc/passwd密码文件进行验证。这其中有些问题,之一就是在Windows 95 OS/R2以后的版本和Windows NT SP3以后的版本缺省都不传送明文密码,要让这些系统能传送明文密码必须在其注册表里更改。对于Windows 95 OS/R2以上的版本,可以在 [HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]里加一个十六进制值 Enable PlainTextPassword=00000001。对于WINDOWS NT SP3 以上的版本,可以在 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRdrParameters]里加一个十六进制值EnablePlainTextPassword=00000001,这样就可以让它们能在网络上传送明文密码。

另外,还有一件很烦人的事情就是NT系统,如果一个服务器是处于用户级别上的安全模式,又不支持密码加密传送的话,NT把拒绝和服务器连接,除非服务器向用户提示要密码。这在实际应用中会出现什么情况呢。如果你在NT机器有个帐户user1,在Linux机器上也有个帐户user1,密码都是一样,但你去和Linux机器上的共享连接的时候,NT就会提示你错误的密码或未知的用户名,要求你再次输入用户名和密码,NT才和服务器连接。如果你映射了 Linux上的共享资源作为NT的一个网络驱动器,那么NT在下次启动试图重新连接这个网络驱动器时,又会提示你错误密码或未知用户名.... 烦得很。所以一般samba的应用基本都设定为yes:encrypt passwords = yes。

当然,samba的用户是基于Linux系统用户的,sambad的加密工具是smbpasswd,最简单的用法是smbpasswd -a username 这里的username必须是/etc/passwd里存在的用户名,然后会提示输入密码和确认密码,会生成一个新的密码条目,放在 /etc/smbpasswd这文件里。另外,samba提供了一个工具—mksmbpasswd.sh,这是shell脚本,可以从 /etc/passwd文件里生成smbpasswd文件,用法是:cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd 。把passwd里的用户都加到smbpasswd里。从安全起见,smbpasswd这个文件的存取权限请设为600。 

username map

说明:这个参数可以让你指定一个文件包含来自客户机的用户名与Linux系统用户名之间的映射,文件的格式是每行一个映射,映射的格式是:Linux usename = client username ... 。

例如 root = admin adminstrator这样,当客户机的用户是admin或administrator时,就被转换成root。这个功能对用户管理很方便,可以让管理员不需要对客户或服务器上的用户帐号大动干戈。 文件名通常用默认的/et/smbusers password level 说明:这是针对一些SMB客户像Windows for Workgroup、OS/2之类而设的,像WFW这样的系统在发送用户密码的时候,会把密码转换成大写再发送,这样就和samba的密码不一致,这个参数可以设定密码里允许的大写字母个数,这样samba就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。这个值越大,组合的次数就越多,验证时间就越长,安全性也越低!

例如:如果这个值是2,用户的密码是abcd,但发送出去其实是ABCD,samba就会把这个ABCD进行大小写重组,组合的密码可以是下列:Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。

所以如果没有必要,就把这个值定为是零(一般应该是没这必要,现在谁还用WFW这样的系统)。这样的话samba只尝试两次,一个是接收到的密码,另一个尝试的是这个密码都是小写的情况。即使是这样,也还存在着一定的安全性问题。

guest account

说明:这个参数指定guest级帐户的用户名,可以是nobody、ftp,guest级别的用户可以不要密码就访问给定的guest服务。

host allow

说明:这个参数指定那些机器可以访问samba,例如:host allow = 192.168.1. 127. 指定192.168.1.0里的所有机器都可以访问。如果不允许子网里的一台机器访问,可以这样设:host allow = 192.168.1. EXCEPT 192.168.1.33 禁止192.168.1.33访问。

host deny

说明:和host allow 相反是指定那些机器不能访问,格式一样。

2.3 日志记录参数

log file

说明:这个参数指定日志文件的名称,路径一般放在/var/log/samba,可以在文件名后加个宏%m表示对每台访问samba的机器都单独记录一个日志文件。 例如: log file = /var/log/samba/log.%m,如果host1、host2这台机器访问过samba,就会留下log.host1、log.host2这两个日志文件。

max log size 说明:这个参数指定最大日志文件的大小,以KB为单位。例如:max log size = 50k。

2.4 协议参数

announce version

说明:指定服务器的宣告版本号,默认是4.2,如果在WINDOWS的网上邻居里查看samba服务器的属性,就可以看见在类型一行里有 Windows NT 4.2 Server 的字样。一般不要去更改它,如果你要让samba模拟NT像一点的话,可以改成4.0。

2.5 计算机浏览参数

os level

说明:os level 的值是个整数,决定了nmbd是否有机会成为本地广播区域的工作组里的本地主浏览器,默认值是零,零则意味着nmbd失去浏览选择。如果要nmbd更有机会成为本地主浏览器的话,可以设为65。

preferred master

说明:这个参数指定nmbd是否是工作组里的首要的主浏览器,如果指定为yes,nmbd在启动的时候就强制一个浏览选择。指定该参数为yes时最好把domain master 也指定为yes。用这个参数的时候要注意的是在samba服务器所在的子网上如果有其它的机器(不管是WINDOWS NT还是另一个samba服务器)也指定为首要的主浏览器时,这些机器都会因为争夺主浏览器而在网络上广播,引起不必要的网络性能下降。

local master

说明:这个参数指定nmbd是否试图成为本地主浏览器,默认值是yes,如果设为no则samba服务器就永远都不会成为本地主浏览器。但即使设置了yes,也不等于samba服务器就会成为本地主浏览器。只是参与本地主浏览器选择。

domain master

说明:这个参数让nmbd成为一个域浏览器,取得各本地主浏览器的浏览列表,并把整个域的浏览列表递交给各本地主浏览器。默认值是no。如果网络上已经有一台NT PDC,就不要把这个参数设为yes,争不过NT PDC的。

另外,如果你对计算机浏览服务不是很清楚的话,可以参考NT网络管理资料。

2.6 共享资源设置参数

comment

说明:就是对共享的描述,可以是任意的字符串。例如:comment = Share Stuff。

path

说明:path是提供共享服务的路径,可以用%u %m这样的宏来代替路径里的unix用户和客户机的Netbios名。

例如:如果我们不打算用home段做为客户的共享,而是在/home/share/ 下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。

用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,可以这样写path:path = /home/share/%m 。

writeable

说明:指定共享路径是否可以写,值是yes或no。

browseable

说明:指定共享是否可以浏览,默认是yes。

available

说明:指定共享资源是否可用,默认是yes,设为no则关闭该资源的共享服务,用户无法连接到该资源上。

exec 和 postexec,root preexec 和 root postexec

说明:指定在用户与共享资源在连接和断开时在服务器上执行一个命令,这两对参数很有用,区别是root preexec 和root preexec 是以root的权限运行。比如在服务器把cdrom作为共享,但cdrom是不能一直处于装配状态的。我们可以这样设置

[cdrom]   comment = Server Cdrom   path = /mnt/cdrom   public = yes   browseable = yes   root preexec = /bin/mount -t iso9660 /dev/cd0 /mnt/cdrom   root postexec = /bin/umount /mnt/cdrompublic

说明:这个参数指明是否允许guest帐户访问,值为yes或no,另一个和public相同意义的参数是guest ok。打印共享还有些专用的打印参数,阐述如下:

load printers

指定在samba启动时是否自动把printcap文件里的所有打印机加载,从而可以在浏览清单里看到所有的打印机,默认是yes。 printable 指定用户能不能打印,默认是no,要让一个打印共享可以让用户使用,必须设为yes。print name 打印机名。

printer driver

打印机的驱动类型,这个参数可以让WINDOWS知道远程打印机上的类型,具体的值可以参考在WINDOWS里安装打印机出现选择打印机类型时的打印机类型。比如Espon LQ1600K打印机:

printer driver = Espon LQ-1600K 以上就是samba的一些常用的配置,通过这些配置参数,我们已经可以建立起一个一般应用的文件服务器。虽然还有很多参数没有提到,但samba本身可以用缺省值。 启动samba,可以用/usr/sbin/samba start来启动samba,也可以用ntsysv来启动。

三、samba 进阶

下列所介绍的是一些高级参数的配置,这些参数如果应用得当,可以更加灵活地在网络上应用samba

1.宏

在基本配置里有提到一些参数的可以尾随%u、%m,这是samba里定义的宏,宏用百分号后面跟一字符表示,在具体运作的时候就用实际的参数来代替。常用的宏有:

%S = 当前服务名;

%P = 当前服务的根路径;

%u = 当前服务的用户名;

%g = 给定%u的所在的主工作组名;

%H = 给定的%u的宿主目录;

%v = Samba 版本号;

%h = 运行Samba的机器的主机名;

%m = 客户机的NETBIOS名;

%L = 服务器的 NetBIOS 名;

%T = 当前的日期和时间;

灵活地应用宏可以很方便地管理比较复杂的网络。

2.一些常用高级配置参数

2.1 全局参数

config file

说明:这个参数是全局参数,可以让你用另一个配置文件覆盖缺省的配置文件,如果文件不存在,该项无效。这个参数非常有用,也使得samba的配置更灵活,让一台Linux服务器模拟多台不同配置的NT 服务器,满足不同的需求。

比如,您想让网络上的某台名字是host1的机器用它自己的配置文件,先在/etc/下为host1配置一个名为smb.conf.host1的文件,在缺省的smb.conf里加这行:

config file = /etc/smb.conf.%m

这样,当host1请求连接的时候,smb.conf.%m被替换成smb.conf.host1,对host1来说,它所看到的samba就是由smb.conf.host1定义的。而其它机器还是用smb.conf。

deadtime

说明:这个参数值是个整数,单位是分钟,用于切断一个不活动的连接。当一个没有打开任何文件的连接的不活动的时间超过datetime指定的的时间后,samba就自动切断这个连接。这个参数可以节省服务器的资源消耗,尤其是在有大量连接的情况下。默认的值是零,零代表samba不自动切断任何连接。

time server

说明:这个参数让nmbd成为WINDOS客户的时间服务器。默认是no。

2.2 共享资源参数

dmin users

这个参数用来赋予用户对共享资源的管理员权限,意味着这些用户可以root一样进行所有的文件操作,当然只局限在这个共享资源上。这个选项要慎用,因为任何这样的用户可以对该共享上的文件随意进行操作。缺省是admin users = no。

例如:

admin users = Su_27 那么Su_27这个用户就是这个共享资源的管理员。

valid users

说明:指定共享资源的有效用户,即允许访问该资源的用户。例如:valid users = user1, user2那么user1和user2是有效用户。

invalid users

说明:和valid users 相反,指定那些用户不可访问这共享资源。

max connections (S)

说明:指定一个服务的最大连接数目,用户连接到该服务时如这个服务的连接数目已经达到指定值,这个新的连接请求把被拒绝。 例如: max connections = 100 最大连接数为100以上是一些samba的高级配置参数,但samba的参数还有很多,本章不能一一详述,如文件创建权限设定,代码页,文件名大小写是否敏感等,可以参考samba的文档。

四、什么是NFS

NFS 是网络文件系统(Network File System)的简称,是分布式计算系统的一个组成部分,实现在异种网络上共享和装配远程文件系统,从用户角度看来,在这些远程的文件系统操作和本地的文件系统上操作并没有什么不同。NFS由Sun 微系统公司(Sun Microsystem, Inc)开发,制订了NFS 标准,并被IETF接受,纳入RFC,作为文件服务的一种标准(RFC1904,RFC1813)。NFS基于客户/服务器结构,通过RPC(远过程调用)实现,所有的NFS操作都由RPC过程来进行。NFS 服务器导出本地的目录给远程的NFS客户,NFS客户把对文件操作系统调用重定向到远程的系统。在Linux里,通常用knfsd来实现NFS服务,这是个运行在核心空间的后台守护程序,相对与用户空间的NFS程序,有较高的响应性能。

五、配置NFS

1.创建或修改/etc/exports

exports 的每一行由导出路径, 客户名列表以及每个客户名后尾随的访问选项构成, 访问选项是可选的。

directory hostname(options) ...

options是可选的,如果不指定options,nfs把采用默认的选项。hostname也可以为空,代表给任意外来主机提供服务。

例如: /usr ws1.mydomain.com 导出路径/usr 提供给 ws1.mydomain.com 访问。

/usr ws1.mydomain.com(rw) 同样是给ws1.mydomain.com访问,但具有写入权限。

/pub (ro,insecure,all_squash)导出/pub, 任何机器都可以访问, 允许用大于1024的端口进行连接, 并把所有的连接id映射到nobody.

主机名里可以包含通配符*和?,例如 *.mydomain.com,代表mydomain.com里的所有机器,但注意通配符不能匹配主机名里的点,所以上面的*.domain.com不包括ws1.subdomain.mydomain.com这样的机器。也可以用IP网络/子网掩码的形式来指定网络上的可以访问的机器。例如: 192.168.1.0/255.255.255.0修改过/etc/exports后,需要告诉nfs进程重新检查配置信息,可以用命令: exportfs或重新启动nfs。

一些常用选项:

insecure 允许用户可以从大于1024的端口进行连接。

secure 限制用户只能从小于1024的端口号进行连接。

ro 只读,注意在没指定ro的情况是可写的。

noaccess 让导出路径的所有子目录对客户不可见。用户连接到这样的路径后看到的是个空目录。

root_squash 这个选项可以把从客户机的uid为0的请求映射成nobody。

no_root_squash 这个选项和上面的相反,不映射uid 为0的请求,这是缺省的。

rw 可写,这是缺省的。

2.一个exports的例子

/home ws1(rw) ws2(rw) ws3(rw)   /usr/X11R6 ws1(rw) ws2(rw) ws3(rw)   /usr/share ws1(rw) ws2(rw) ws3(rw)   / ws1(rw,no_root_squash)   /home/ftp (ro)   /pub (ro)   /pub/private (ro,noaccess)3.启动NFS服务

启动NFS服务可以用如下命令:

/etc/rc.d/init.d/nfs start在修改exports文件后要告诉nfs配置信息变化,可以:

/etc/rc.d/init.d/nfs stop   /etc/rc.d/init.d/nfs start4.怎么样装配远程NFS文件系统

如上例,装配上述的/pub可以简单用如下命令:

mount hostname:/pub /mnt其中hostname是远程主机的主机名。

查询远程机器上有导出文件系统的情况,可以用showmount -e hostname。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zxg623/archive/2007/10/24/1841564.aspx

查阅文当中总结出来的,肯定会存在一些漏洞和错误的注释,希望高手们能够指出,谢谢!!更希望能在朋友们的使用配置samba中派上用场!
#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentary and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic
# errors.
#

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = MSHOME     //设置samba的机器所在工作组

# server string is the equivalent of the NT Description field
   server string = %h server (Samba, Ubuntu)  //服务器描述字符串

# Windows Internet Name Serving Support Section:
# Windows Internet Name Service 微软开发的域名服务系统。

WINS 是Windows Internet Name Server(Windows网际名字服务)的简称。WINS为NetBIOS名字提供名字注册、更新、释放和转换服务,这些服务允许WINS服务器维护一个将NetBIOS名链接到IP地址的动态数据库,大大减轻了对网络交通的负担。
我们为什么需要WINS服务(把机器名转换成IP地址,它象TCP/IP中DNS那样工作。)
在默认状态中,网络上的每一台计算机的NetBIOS名字是通过广播的方式来提供更新的,也就是说,假如网络上有n台计算机,那么每一台计算机就要广播 n-1次,对于小型网络来说,这似乎并不影响网络交通,但是当大型网络来说,加重了网络的负担。因此WINS对大中型企业来说尤其重要。
Samba 的运行包含两个后台守护进程:smbd和nmbd,它们是Samba的核心,在全部时间内运行。nmbd 程序使得通过企图计算机可以浏览Linux服务器。Smbd守护进程在SMB软件包到达网上时对它们进行处理,并且为使用或共享它的资源与Linux进行协调。如果指定的是一个文件,该资源就是一个文件;而一个打印机请求就要求访问一台打印机。实际上,在请求访问打印机时,Smbd把要打印的信息存储到打印机队列中;在请求访问一个文件时,Smbd把数据发到内核,最后将它存到磁盘上。[url]http://www.linuxmine.com[/url] /4042.html

# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
# WINS支持 - 告知NMBD使能它的WINS 服务器。
;   wins support = no

# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# WINS服务器-告知Samba的NMBD部件成为WINS的一个客户。
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
# SAMBA服务器可以成为其中的一个:WINS 服务器或 WINS客户机,但不能二者皆是。
;   wins server = w.x.y.z
# 这里WINS IP服务器一定要指定。

# This will prevent nmbd to search for NetBIOS names through DNS.
#决定samba是否通过DNS的nslookups去解析主机的NetBIOS的名
   dns proxy = no

# What naming service and in what order should we use to resolve host names
# to IP addresses
;   name resolve order = lmhosts host wins bcast
# 规定名字解析方式的顺序

当客户端在许多网络操作中需要WINS服务器解析名字,例如当使用网络上其它计算机的共享文件时,为了得到共享文件,用户需要指定两件事:系统名和共享名,而系统名就需要转换成IP地址。

名字解析过程是这样的:

(1).当客户端计算机想要转换一个名字时,它首先检查本地NetBIOS名字缓存器。

(2).如果名字不在本地NetBIOS名字缓存器中,便发送一个名字查询到首选WINS服务器(每隔15秒发送一次,共发三次),如果请求失败,则向次选WINS发送同样的请求。

(3).如果都失败了,那么名字解析可以通过其它途径来转换(例如本地广播、lmhosts文件和hosts文件、或者DNS来进行名字解析。
#### Networking ####(针对服务器中有多种网络接口如一张以上的网卡,比如无线网卡,内部局域网卡等)
   本模块的设置含义,参考转载文件Multiple Network Interfaces with Samba。
# The specific set of interfaces / networks to bind to
# 将要绑定的网卡/网络的详细设置
# This can be either the interface name or an IP address/netmask;
#设置的值可以是网卡的名称或者ip地址/网络广播
# interface names are normally preferred
;   interfaces = 127.0.0.0/8 eth0
# 192.168.1.1/24
这个24就是子网掩码,它的二进制是24个1如11111111.11111111.11111111.00000000
换成十进制就是255.255.255.0
61.138.0.93/30
这个30也是子网掩码,IP地址是A类地址.它的二进制是30个1如
11111111.11111111.11111111.11111100
换成十进制就是255.255.255.252
#
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.  However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
;   bind interfaces only = true

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
# 为每个连接samba服务器的机器建立对应的日志文件
   log file = /var/log/samba/log.%m

# Put a capping on the size of the log files (in Kb).
# 设置每个日志文件的最大值,单位为kb。
   max log size = 1000

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
# 设置是否只是通过只通过系统日志文件来记录不同的连接机器的日志
;   syslog only = no

# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
   syslog = 0
# 如果只是想用syslog记录日志,请把这个值(记录的值)设置的更高一些。

# Do something sensible when Samba crashes: mail the admin a backtrace
# 当samba当机的时候,发送backtrace给admin
   panic action = /usr/share/samba/panic-action %d

#
backtrace是什么? 有人让我发给他们一个backtrace, 我该怎么做?

一个非常有用的调试工具是backtrace,这实际上是程序当前运行处的 一个快照.它通常是在程序崩溃(意外退出,常伴有段故障或其它错误) 或者挂起(停止运行但不退出)时所做.这里假设你用的是GNU项目的 GDB调试器,因为这是用GNOME时常用并且也是我所用的,如果你用的是其它的调试器,参照你的文档.

有两种方法做backtrace:你可以用程序崩溃时留下的core文件,也可以 直接在调试器里运行程序.我发现在调试器里运行程序更可靠,不过我 也会讲用core文件的方法.

要用GDB运行程序,可以在xterm(或类似的东西)里,输入 gdb <full name and location of program>, 比如,要调试gtalk,你可以 做gdb /usr/local/bin/gtalk. GDB不会去搜索路径,所以你需要指定程序在哪里.如果你想带参数运行程序, 可以在稍后指定参数.

然后GDB会自己识别,并且给你一个 (gdb)提示. 在这里,你可以输入run以运行程序. 如果需要带参数运行,把它们放在这儿.例如,要调试不带声音的gtalk,你要 输入run --disable-sound,程序就 开始运行了.记住,程序会比通常的慢,并且占用更多的内存.

现在你要尽力再现你的问题,做不管什么以产生以前的问题.一旦程序崩溃, 在调试会话里你马上会看到一堆东西和(gdb)提示.如果程序挂起,等到你确定它挂起在正确的地方,然后在调试会话里按Control-C, 它也会出一堆东西然后是 (gdb)提示.在这个提示下 (不管你是怎么得到的),输入bt,它会给 出实际的backtrace.

这里是一个调试会话的例子,如果你被要求一个backtrace,你需要发送下面所有 的内容:

$ gdb /usr/local/bin/gtalk
GNU gdb 4.17
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
(gdb) run --disable-sound
Starting program: /usr/local/bin/gtalk --disable-sound

Program received signal SIGINT, Interrupt.
0x4049290d in __poll (fds=0x808c110, nfds=3, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:45
../sysdeps/unix/sysv/linux/poll.c:45: No such file or directory.
(gdb) bt
#0  0x4049290d in __poll (fds=0x808c110, nfds=3, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:45
#1  0x403c54e9 in g_main_poll (timeout=-1, use_priority=0, priority=0)
    at gmain.c:991
#2  0x403c516e in g_main_iterate (block=1, dispatch=1) at gmain.c:789
#3  0x403c58a1 in g_main_run (loop=0x80882e8) at gmain.c:912
#4  0x401cbf1d in gtk_main () at gtkmain.c:475
#5  0x804a629 in main (argc=2, argv=0xbffffaa4) at main.c:54
#6  0x40407c77 in __libc_start_main (main=0x804a570 <main>, argc=2,
    argv=0xbffffaa4, init=0x8049e10 <_init>, fini=0x804c7dc <_fini>,
    rtld_fini=0x40009c10 <_dl_fini>, stack_end=0xbffffa9c)
    at ../sysdeps/generic/libc-start.c:78
(gdb)

用core dump作backtrace是十分类似的:到core dump所在的目录,然后 运行gdb -c core <full name and location of program>,再说一遍,GDB不搜索你的路径,你需要指定 在哪里能找到程序.然后你所要做的就是在提示下输入 bt,并且把整个会话送出去.


####### Authentication #######

# PAM 是unix的一种鉴别机制
# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba-HOWTO-Collection/ServerType.html
# in the samba-doc package for details.
# 设置用户登录samba服务器的认证方式(推荐用“user”方式,即需要登录用户提供一个登录帐号)
;   security = user

# You may wish to use password encryption.  See the section on
# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
# 设置是否对密码进行加密,samba本身有一个密码文件/etc/samba/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和Linux里的/etc/samba/smbpasswd密码文件进行验证。但是在Windows 95 OS/R2以后的版本和Windows NT SP3以后的版本缺省都不传送明文密码,要让这些系统能传送明文密码必须在其注册表里更改,比较麻烦,好的方法就是把这里的这个开关设置为true。
   encrypt passwords = true

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.  
# 如果你使用加密密码,请指出所使用的密码数据库类型
   passdb backend = tdbsam

   obey pam restrictions = yes
# 设置guest游客帐户
;   guest account = nobody
# 禁用登录帐户
   invalid users = root

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
# 是否需要同步unix和windows的口令
;   unix password sync = no

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
# 设置更改口令的程序
   passwd program = /usr/bin/passwd %u
# 设置更改口令的协议
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .

# 以上用杠隔开部分设置能否从windows的应用程序修改unix系统的用户密码

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
# 设置:当samba服务器收到smb客户端的请求时,是否用pam来取代已经设置为'passwd program'的应用程序,用来修改密码。
;   pam password change = no

########## Domains ###########

# PDC是指一个主域控制器,BDC是一个备份域控制器。你必须在装其他域服务器之前先安装一台PDC。这台主域控制器主要负责备份目录数据和用户的验证。一台备份域控制器包含着备份的目录数据和用户的验证。如果,PDC坏掉,那么BDC就可以提升为PCD。从PDC升为BDC用户所改变的信息和数据不会丢失。即使这台BDC提升为PDC,PDC也能降级为BDC。
# Is this machine able to authenticate users. Both PDC and BDC
# must have this setting enabled. If you are the BDC you must
# change the 'domain master' setting to no
# 这台机器可以验证用户么?PDC和BDC都必须激活这一设置。如果你为BDC,你必须将‘domain master’(在下面的-----MISC------中)值设置为no。
#
# samba可以管理整个域的连接控制么?如果想使Samba成为Windows95工作站的登录服务器,则使用此选项。
;   domain logons = yes
#
# The following setting only takes effect if 'domain logons' is set
# 下面的设置仅当'domain logons' 被设置后才起作用
# It specifies the location of the user's profile directory
# from the client point of view)
# 指定本地用户profile的路径。 放置roving profiles 文件的位置(仅用于 Win95 和WinNT) ,%L代表该服务器 NetBIOS名,%U是用户名
# The following required a [profiles] share to be setup on the
# samba server (see below)
# 下面的设置需要你去掉“=== Share Definitions ====”中的[profiles]的注释号';',设置在什么地方存放我们的启动脚本。
;   logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory
;   logon path = \\%N\%U\profile

# The following setting only takes effect if 'domain logons' is set
# It specifies the location of a user's home directory (from the client
# point of view)
# 指定一个用户home的路径
;   logon drive = H:     \\指定登录的驱动盘
;   logon home = \\%N\%U
# 常用变量说明
%S = 当前服务名(如果有的话)
%P = 当前服务的根目录(如果有的话)
%u = 当前服务的用户名(如果有的话)
%g = 当前用户说在的主工作组
%U = 当前对话的用户名
%G = 当前对话的用户的主工作组
%H = 当前服务的用户的Home目录
%v = Samba服务的版本号。
%h = 运行Samba服务机器的主机名
%m = 客户机的NETBIOS名称
%L = 服务器的NETBIOS名称
%M = 客户机的主机名
%N = NIS服务器名
%p = NIS服务的Home目录
      在一个大型的网络当中,如果有多部 Linux 主机,万一要每部主机都需要设定相同的帐号与密码时,还真是麻烦。 此时,如果能够有一部主控服务器 (master server) 来管理网络中所有主机的帐号,当其他的主机有使用者登入的需求时,才到这部主控服务器上面要求相关的帐号、密码等使用者资料,如此一来,如果想要增加、修改、删除使用者资料,只要到这部主控服务器上面处理即可, 这样就能够降低重复设定使用者帐号的步骤。

  这样的功能有很多的服务器软件可以达成,这里我们要介绍的则是 Network Information Services (NIS server) 这个服务器软件。
      NIS 最大的用途在于提供客户端的使用者相关参数查询,举例来说,使用者的帐号、密码、UID、家目录、shell 等等的,都可以通过 NIS 服务器来查询的。但 NIS 所能提供的也就是这样了,他并没有办法提供使用者家目录的空间,因此,一般在高效能运算电脑当中,如果想要让所有的机器都拥有相同的帐号密码,通常使用 NIS 提供身份验证,配合 NFS 提供所需要的磁盘空间。
%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 当前服务进程的ID
%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)
%I = 客户机的IP
%T = 当前日期和时间
#
# The following setting only takes effect if 'domain logons' is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# 指定在有用户登录时要运行的脚本。这个脚本必须存放在[netlogon]共享中。
# NOTE: Must be store in 'DOS' file format convention
#
;   logon script = logon.cmd

# 一下还不懂呢。
# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe.  The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

########## Printing ##########

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
# 如果你想自动载入一个打印清单,而不用一个一个的手工录如,可以启动设置这个。
;   load printers = yes

# lpr(ng) printing. You may wish to override the location of the
# printcap file
# 如果打印机系统是非标准的,就需要指定是什么打印系统。
# 现在支持的打印系统有:
# bsd, sysv, plp, lprng, aix, hpux, qnx
;   printing = bsd
# 存放打印机信息文件的路径
;   printcap name = /etc/printcap

# CUPS = Common UNIX Printing System
# CUPS printing.  See also the cupsaddsmb(8) manpage in the
# cupsys-client package.
;   printing = cups
;   printcap name = cups

# When using [print$](下面的---- Share Definitions ---定义), root is implicitly a 'printer admin', but you can
# also give this right to other users to add drivers and set printer
# properties
# 当使用[print$]打印是,root帐户是一个隐含的'printer admin',不过你也可以给其他用户权限来加载驱动和设置打印机属性
;   printer admin = @lpadmin


############ Misc ############

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
# 指定对不同机器的连接采用不同的配置文件,由于采用了samba的变量,把配置文件和客户机的NETBIOS名称关联起来,能很容易的控制这些客户机的权限和设置
;   include = /home/samba/etc/smb.conf.%m

# Most people will find that this option gives better performance.
# 大多数人会发
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics