Samba HOWTO (4)
时间:2007-02-17 来源:PHP爱好者
6.6.1. 链接及类似资源
Samba主站。在这里我们提供了离你最近的镜像站点!
Samba镜像站中的开发文档可能会提到你的问题。如果是这样的话,就说明开发者正在解决它。
看看Scott Merrill是如何来模拟备份域控制器的:http://www.skippy.net/linux/smb-howto.html。
在http://bioserve.latrobe.edu.au/samba中,David Bannon维护了一篇把2.0.7作为PDC的文章。
在http://samba.org/cifs/中有其它关于CIFS的信息。
在http://mailhost.cb1.com/~lkcl/ntdom/中有关于UNIX上的NT域的内容。
早期SMB规范:ftp://ftp.microsoft.com/developr/drg/CIFS/
--------------------------------------------------------------------------------
6.6.2. 邮件列表
如何从邮件列表中获得帮助?
Samba有许多相关的邮件列表。请到http://samba.org选择离你最近的镜像站点,然后选Support栏中的Samba related mailing lists。
与Samba TNG有关的问题请到http://www.samba-tng.org。但请不要把这类问题发到Samba的主列表中去。
在使用邮件列表时请遵循以下规则:
记住,开发者是志愿工作者,他们没有任何收益,也不保证其观点百发百中,通常也只能算是最佳建议而已。
尽可能提供你所使用的Samba及操作系统的版本,还有smb.conf的有关部分,至少要给出影响PDC功能的[global]段中的选项。
如果你是通过CVS获得代码的,那么除了代码版本之外,还应提供最后一次刷新的日期。
请尽量简单厄要地表达问题,不要用html格式来发送邮件。
不要讨论无关的问题。
不要交叉投递,请选择最合适的列表进行提问。很多人都订阅了多个列表,他们讨厌过多地看到同一话题。如果有人看到某个问题更适合其它列表,会帮你转发过去的。
如果要讨论一个调试方面的问题,请不要把整个记录都发上来,提供相应的出错信息足矣。
如果你有一个完整的netmon跟踪信息(从打开管道到出错),那么就把*.cap文件发上来吧。
在邮件中夹带附件请三思而后行,最好只提供相关的部分。要知道Samba的邮件列表有大量的订阅者,不是每个人都希望收到一份smb.conf的。
如何取消邮件列表?
要退订请去当初订阅的地方看看:http://lists.samba.org,或者看一下这里。请不要在邮件中询问如何退订。
--------------------------------------------------------------------------------
6.7. DOMAIN_CONTROL.txt:Samba & Windows NT域控制
该附录的原作者为Samba开发小组的John H Terpstra。
注意:“域控制器”和那些与之相关的术语同属于一种特殊验证方法,这种方法是建立SMB域的基础。在Windows NT Server 3.1之前,各家公司都单独开发了域控制器,并各自对LAN Manager 2.1协议进行了扩展。Windows NT则使用了微软自己的方法来分发用户验证数据库。DOMAIN.txt文件举例说明了Samba基于共享验证数据库机制参与或建立SMB域的方法,它和Windows NT的SAM是不同的。
Windows NT Server既可作为独立的文件和打印服务器,也可作为参与域控制的服务器(域成员、主域控制器或备份域控制器)。
OS/2 Warp Server、Digital Pathworks和其它类似产品在这方面的功能都很相似,它们都可以同Windows NT一起参与域控制。但只有那些含有兼容Windows NT代码的服务器才可以作主域控制器(如Windows NT Server、Advanced Server for Unix)。
对很多人来说这些术语实在是太令人混淆了,所以让我们来解释一下。
每个Windows NT系统(工作站或服务器)都有一份注册表数据库。该注册表含有所有在NT环境中运行的服务(与UNIX的后台进程类似)的初始信息。同时,注册表还包括应用程序所需动态库的位置。其实,它囊括了系统运作所需的全部信息。
在任何Windows NT机器上,只要打开一个命令提示符并输入以下命令就可以找到注册表文件:
C:WINNT>dir %SystemRoot%System32config
其中的环境变量%SystemRoot%可以用下面的命令得到:
C:WINNT>echo %SystemRoot%
你需要了解的主要几个注册表部件就是这些文件:default、system、software、sam和security。
在一个域环境中,Windows NT域控制器会互相复制SAM和SECURITY文件,这样就保证了域中所有控制器数据的一致性。
Windows NT系统是由一种安全模式构成的,在这种模式中,所有待运行的应用程序和服务都必须先向安全管理器验明自身以获得所需的适当权限。而且NT的用户数据库也位于注册表中,这些数据包括用户的安全标识符、主目录、组成员资格、桌面配置等等。
每个NT系统(工作站与服务器)都有自己的注册表。参与域安全控制工作的NT服务器共享一套公有的数据库,而工作站及独立服务器则各自拥有一份完全独立的注册表数据库,在这一点上,这两种系统是有区别的。
NT的用户数据库称为SAM(Security Access Manager),使用它可以完成所有用户的验证工作,另外还有交叉验证(例如,确保用户请求的服务项根据用户的权限进行工作)。
Samba开发小组已经提供了一个工具,用来把NT的SAM转换为smbpasswd格式。该工具可以在离你最近的Samba镜像站的/pub/samba/pwdump找到,详情可以参见ENCRYPTION.txt文件。这个工具虽然很有用,但要用它把SAM复制到Samba系统上却并不那么容易。
在一个由配置好了的NT服务器所控制的安全域系统中,Windows for Workgroups、Windows 95和Windows NT Workstations/Servers都可以协同工作。每个这样的域最多只能有一台主域控制器(PDC);而每个域至少要有一台备份域控制器(BDC)。这些域控制器要互相复制SAM数据库,因此它们的注册表中都会有最新的SAM信息。
--------------------------------------------------------------------------------
Chapter 7. 用Winbind在Windows NT与UNIX间进行统一登录
7.1. 概要
在异种计算机环境中通过统一登录来集成UNIX和Windows NT系统长期以来一直是人们追求的目标。我们向你推荐一个称为winbind的Samba组件来解决统一登录的问题。它在UNIX上实现了微软的RPC调用、可插式验证模块和名字服务切换,通过这些功能可以使NT域用户能在UNIX主机上以UNIX用户身份进行操作。本文对winbind系统进行了描述,解释了它所提供的功能以及配置和内部工作原理方面的问题。
--------------------------------------------------------------------------------
7.2. 介绍
大家都知道UNIX和Windows NT系统使用不同的技术和方式来表示用户和组信息。这就使得集成这两种系统变得更加困难。
现在常用的方法之一,就是在两种系统上创建相同的用户账号,并使用Samba在两者之间提供文件和打印服务器。但是这种方法还不是很完美,因为在一大堆机器上维护账号是件麻烦事儿,而且在两种系统间使用两套口令既容易引起同步问题,又使用户感到很混乱。
于是,我们就把UNIX主机的统一登录问题划分成三个小问题来看:
获得Windows NT用户和组信息
验证Windows NT用户
为Windows NT用户更改口令
最理想的情况是,所使用的方法应该可以解决以上所有的问题,并且无须在UNIX主机上复制信息,也无须使系统管理员在维护这两种系统的用户及组信息时产生额外的负担。winbind系统提供了一套解决上述三个问题简单而漂亮的方案。
--------------------------------------------------------------------------------
7.3. Winbind的功能
winbind把一台UNIX主机变成一个完全的域成员,这样就可以统一管理UNIX和NT上的账号了。这时,这台UNIX主机将可以查看NT的用户及组信息,就好象这些信息是UNIX本地的一样,同时,使用户可以在纯UNIX环境里象使用NIS+一样的来使用NT域。
最后实现的结果是,当UNIX主机向操作系统查询任何用户或组名时,该查询都会被发往指定域中的NT域控制器。因为winbind通过系统低层(使用C库中的NSS名字解析模块)重定向了该查询,而这对NT域控制器来说是完全透明的。
UNIX主机上的用户可以把NT用户及组名当作“本地”账号来用,还可以把文件的属主改成NT域用户,甚至可以用一个域用户的身份登录到UNIX主机并运行一个X-Window会话。
使用winbind要当心的唯一问题,就是用户名和组名使用DOMAINuser和DOMAINgroup这样的形式,这是winbind所必须的,因为它要用这种形式来检测重定向查询的目标域控制器,并考虑信任域的问题。
另外,winbind还利用了可插式验证模块(PAM)通过NT域向任何使用PAM的应用程序提供验证服务。这就解决了系统间的口令同步问题,因为所有口令都保存在一个单一的位置上(域控制器中)。
--------------------------------------------------------------------------------
7.3.1. 使用目标
winbind的服务目标是那些要把UNIX工作站或服务器加到现有NT域结构的机构。这些机构可以利用winbind在无须维护单独账号结构的情况下配置UNIX工作站,这就减少了向NT结构中添加UNIX工作站的管理费用。还有,使用winbind可以把基于UNIX的设备环境集成到基于微软系统的域结构中去。
--------------------------------------------------------------------------------
7.4. winbind如何工作
winbind系统是按客户机/服务器结构设计的。一个持续运行的winbindd进程监听一个UNIX套接字,并等待请求的到达。这些请求是由运行NSS和PAM的客户机产生的,服务器按序对其进行处理。
下面详细描述winbind的实现技术。
--------------------------------------------------------------------------------
7.4.1. Microsoft远程过程调用
在过去的两年中,Samba开发小组的各位成员已经对微软的远程过程调用系统(MSRPC)进行了分析!在Windows NT主机上,很多与网络有关的操作都使用了这套系统,如远程管理、用户验证以及打印假脱机。虽然,一开始对该系统的分析工作只是为了有助于在Samba中实现主域控制器功能,但是,同时又产生了大量有其它用途的代码。
winbind使用各种MSRPC调用来处理域用户和组信息,并以此获得个别用户或组的详细情况。MSRPC调用还可以用于验证NT域用户并更改它们的口令。winbind向NT主域控制器直接查询用户及组信息,并把这些NT的账号信息映射到UNIX的用户名和组名上。
--------------------------------------------------------------------------------
7.4.2. 名字服务切换
名字服务切换(NSS)是很多UNIX操作系统所具有的功能。使用它可以从不同的资源中解析系统信息,如主机名、邮件别名和用户信息等。例如,单独的UNIX工作站可以从一系列保存在本地系统上的平面文件中解析系统信息;而网络工作站则可以先从本地文件中获得系统信息,再参考NIS数据库查询用户信息或从DNS服务器查询主机信息。
在解析UNIX用户名和组时,使用NSS应用编程接口的winbind就象一个系统信息源。而另一方面,它通过使用MSRPC调用获得NT服务器的信息,并使用上述接口提供一套新的账号信息表。使用这套标准UNIX库调用的好处是,只要在运行winbind的UNIX主机上查阅一次用户和组信息,就可以象在本地一样查看NT域及其受托域在内的所有用户和组信息。
NSS主要的控制都包含在/etc/nsswitch.conf文件中。当一个UNIX应用程序产生一个查询请求时,C库就会在该文件中查找与所请求之服务类型相匹配的行。例如,当查询用户和组信息时,就使用“passwd”这个服务类型。对指定服务类型的进一步查找则按其配置次序进行,例如,如果passwd配置行为:
passwd: files example
那么标准C库首先装入模块/lib/libnss_files.so,然后才是/lib/libnss_example.so。从这里可以看出,它会依次动态地进行装载,然后使用模块调用解析器功能来尝试对请求进行解析,完成之后就把结果返回给应用程序。
使用NSS接口,winbind可以很方便地与操作系统结合。我们要做的只是把libnss_winbind.so放到/lib/目录中,并在/etc/nsswitch.conf文件的适当位置添加“winbind”,到时候C库就会调用winbind去解析用户名和组名了。
--------------------------------------------------------------------------------
7.4.3. 可插式验证模块
可插式验证模块(PAM)是一套对验证和授权技术进行抽象化的系统。使用PAM模块,可以为不同的系统应用指定不同的验证方法,而无须重新编译这些应用。另外,还可以使用PAM实现特殊的授权策略。例如,系统管理员可以限制用户在登录控制台时使用本地口令文件,在进行网络登录时使用NIS数据库。
winbind使用验证管理和口令管理这两种PAM接口把NT用户集成到UNIX系统中。这样,NT用户就可以由合适的主域控制器进行验证,然后登录到UNIX主机中,之后,这些用户就可以更改他们的口令,并使更改立即在主域控制器上生效。
PAM的一组配置文件位于/etc/pam.d/,它们用于各种验证服务。当应用程序产生一个验证请求时,PAM代码就会查找这些配置文件,以便决定按什么样的次序装载哪些模块来执行验证核查。利用PAM的这种多接口形式可以很方便地为winbind添加新的验证服务。只须把pam_winbind.so模块拷贝到/lib/security/目录中,并更新配置文件,使相关的服务通过winbind来进行验证。详情请参考PAM文档。
--------------------------------------------------------------------------------
7.4.4. 用户及组ID的分配
当在Windows NT中建立一个用户或组账号时,系统就为之分配一个数字关系符(RID),而UNIX则在一定的数字范围内使用合适的值产生uid和gid。winbind要做的就是对这两种标识符进行互相转换,它在UNIX系统可用的uid和gid范围中寻找可用于保存NT用户和组账号的值。当首次解析NT用户时,就把该范围内可用的下一个uid值分配给他,对于解析组账号也是同样操作。今后,winbind就可以把NT账号完全映射到UNIX账号了。winbind把映射结果保存在tdb数据库中,保证了映射操作的可靠性。
--------------------------------------------------------------------------------
7.4.5. 缓存结果
持续运行的系统会产生大量的用户及组账号查询。为了使这些查询不影响网络流量,winbind使用了一种缓存机制,这种机制是基于PDC所提供的SAM序列号的。winbind把PDC返回的用户及组账号信息和序列号一起缓存起来,只要修改了用户或组账号信息,NT就会把对应的序列号增值,如果winbind发现一个缓存过的序列号过期了,就再向PDC发出请求,并把返回结果与缓存项进行比较,如不匹配,就丢弃缓存信息,直接向PDC要求更新。
--------------------------------------------------------------------------------
7.5. 安装及配置
安装winbind最简单的方法就是使用Samba镜像站提供的工具包了,它位于站点的pub/samba/appliance/目录中。这些工具包向你提供了处于snapshots阶段的Samba源代码,以及具备完整功能的winbind二进制程序。由于winbind需要少量的Samba_TNG代码,而Samba_TNG还处于开发阶段,因此安装起来就要比普通的Samba版本稍微复杂一点。
完成安装之后最好读一下winbindd(8)手册页,它提供了完整的配置信息及配置样本。
--------------------------------------------------------------------------------
7.6. 限制
在当前版本中,winbind还存在一些限制,我们希望在将来的版本中克服这些限制:
winbind现在还只有Linux版,当然要把它移植到其它操作系统是完全可能。要实现这样的目标,需要其它操作系统中的C库支持“名字服务切换”和“可插式验证模块”,而对大多数UNIX系统来说,这两样通常都是可以获得的。
winbind在对两种系统的标识符进行映射时并没有使用什么更好的算法,它是根据未映射的用户及组账号的次序来看的。如果包含映射信息的文件有问题或被破坏的话,它很难对其进行恢复。
现在,winbind的PAM模块还无法对NT用户设置的可登录工作站及登录时间限制进行记账。
在对winbind的源代码进行编译时要花很长时间,因为它要组合两个Samba分支的源代码。正在考虑的解决方法是,在主分支代码中提供所有必须的功能。
--------------------------------------------------------------------------------
7.7. 结语
winbind系统通过使用“名字服务切换”、“可插式验证模块”以及适当的MSRPC调用向UNIX系统提供了对NT域用户的无缝集成,减少了使用混合系统的网络管理负担。
--------------------------------------------------------------------------------
Chapter 8. UNIX权限位和Windows NT访问控制表
8.1. 用NT安全对话框浏览和修改UNIX权限
在Samba 2.0.4版本中提供了一个新的功能,可以让NT客户在NT上使用安全设置对话框来浏览和修改UNIX权限。但要注意的是,这并不影响运行Samba服务器的UNIX主机安全,它还是得服从Samba管理员所设置的文件权限。在Samba 2.0.4及以上版本中,我们已经把选项nt acl support的缺省值从false改为了true,所以缺省就允许了上述功能。
--------------------------------------------------------------------------------
8.2. 如何浏览Samba共享项上的文件权限
在NT 4.0上,用鼠标右键单击Samba共享盘或UNC路径上的任何文件或目录,在弹出的下拉菜单底部选属性项,这时会打开文件属性对话框,而Samba 2.0.4会在其中添加一个新的书签:安全。在这一页中又有三个按钮:权限、审核、所有者。其中,审核按钮的使用权限取决于你的账号身份。而此时,对Samba共享项来说这个对话框并没有什么用处,因为添加这个有用的按钮现在还不能查看用户列表。
--------------------------------------------------------------------------------
8.3. 浏览文件所有权
点击“所有者”按钮就可以看到所选文件的属主,属主名形如:
“服务器名用户名 (长名)”
其中的服务器名为Samba服务器的NetBIOS名,而用户名则是拥有该文件的UNIX用户名,后面的(长名)是该用户的描述信息(通常取自口令数据库的GECOS字段)。
如果你把选项nt acl support设为false的话,那么显示的文件属主就是NT用户“Everyone”。不过你现在还无法更改文件属主,因为这是属于root才能做的特权操作。
Samba开发小组的Jeremy Allison写一套NT的安全库,它叫做Seclib。NT上的用户可以使用它以管理员权限连接到Samba 2.0.1服务器,然后作为root身份更改本地NTFS文件系统、远程NTFS文件系统或Samba共享盘上的文件属主权。你可以在Samba主站的ftp上找到这套库。
--------------------------------------------------------------------------------
8.4. 浏览文件或目录权限
使用“权限”按钮可以查看所选文件或目录的权限及unix属主。显示的属主格式为:
"服务器名用户名 (长名)"
这些名词的含义与上面提到的那个一样。如果你把选项nt acl support设为false的话,那么显示的文件属主就是NT用户“Everyone”,而对应的权限则是“完全控制”。
文件和目录所显示的权限信息是不一样的,下面分别来介绍一下。
--------------------------------------------------------------------------------
8.4.1. 文件权限
Samba把标准UNIX权限中的“读”、“写”、“执行”映射到NT的三个ACL元素‘r'、‘w'和‘x',以便分别对应NT权限。UNIX的其他人权限被映射到NT的全局组Everyone上,而UNIX的文件所有人及所在组的权限就对应到了NT的用户和本地组之上。
由于很多UNIX权限设置不能映射为NT常用的“读”、“更改”和“完全控制” ,所以在NT上显示这些权限时只能带上“特殊访问”的前缀词了。
那么在UNIX中,无权访问文件如何来表示呢?为使用户可以查看和修改“无权访问”,Samba把这它放到了NT的ACL属性“取得权限”(在UNIX中无意义)上,并向NT表示成“0”权限位,这也说明了没有权限。More details on the decision behind this will be given below.
--------------------------------------------------------------------------------
8.4.2. 目录权限
NTFS文件系统有两种不同的目录权限设置。第一种是目录本身的ACL设置,通常在权限列表的第一个圆括号显示为“RW”这种形式。Samba把这种目录权限同上述的文件权限一样来处理。
第二种是“继承”权限,该目录中的任何文件都会在创建时继承它的权限。在UNIX中是没有这种概念的。Samba使用NT的ACL实现了这种继承权限,这样在Samba共享项中建立新文件时可以得到该共享的UNIX权限。
--------------------------------------------------------------------------------
8.5. 修改文件或目录权限
要修改文件和目录的权限,只要在安全对话框中更改所显示的权限即可。但是,用户在操作标准Samba权限掩码时还是有些限制的,另外也要考虑DOS属性的映射问题。当然,如果你把选项nt acl support设为false,那么就无法设置权限了,你只能得到“拒绝访问”这样的信息。
首先要注意的是,你点击“添加”按钮之后,并不能获得Samba 2.0.4系统上的用户列表(你会得到“远程过程调用执行失败”这样的错误信息)。此时你只能对对话框中列出的现有权限进行操作,其实这也就够了,因为UNIX系统上只有这些权限。(译者注:我发现新版本2.2.0就可以得到用户列表了。)
如果你在NT安全对话框中删除了三组权限(用户、组或其他人)中的设置,那么就清除了UNIX系统上的相应权限位。当再次查看文件或目录的权限时,就会看到前面提到的那个“0”标志了。当然,你在这里可以改回原来的权限设置。
还有,UNIX只支持三个NT的ACL权限位“r”、“w”、“x”,所以Samba服务器将忽略那些其它的NT安全属性。
当你对目录设置权限时,权限列表的第二个圆括号中的权限会应用到该目录中的所有文件之上。如果你不希望产生这种效果,只要清除“替换已存在文件的权限”复选框就可以了。
如果要清除某一项权限,只要选择那一项点击“删除”按钮就可以了;或者把这它设为“取得权限”,这时NT会把该项显示为“0”。
--------------------------------------------------------------------------------
8.6. 使用创建掩码选项
Samba 2.0.5向用户提供了四个新的创建掩码选项:
security mask
force security mode
directory security mask
force directory security mode
当用户在NT上更改远程文件的权限时,Samba就把它们映射为UNIX标准权限,并把它们与security mask选项的值进行比较,如果该选项没有把被更改权限所对应的那一位设为1,就忽略这一位的更改(标准UNIX权限有12位)。如果把该选项的某一位设为0,那么用户就不能更改这一位所对应的权限了。
如果你没有明确地这个选项,那么它的值就和create mask 选项的值相同。如果想允许用户修改文件的所有权限(三个权限组),就把它设为0777就可以了。
接着,Samba把更改的权限再与force security mode选项进行比较,该选项值为1的那一位所对应的权限位将被强行置位为1。如果把该选项的某一位设为1,则用户修改的权限中所对应的那一位也总是被置位为1。
同上面一样,缺省该选项的值与force create mode选项相同。如果不想限制用户修改文件的所有权限(三个权限组),就把它设为000吧。
注意,在对更改请求使用这两个选项时是按上述的次序进行的。
而对于目录来说,Samba执行的操作也与文件类似,它使用的是directory security mask和force directory security mode 这两个选项。它们的缺省值分别与directory mask 和force directory mode的值相同。
Samba管理员可以使用这些方法对每个共享项进行权限设置,这样就可以限制用户对权限位的修改。
如果你希望允许用户完全控制一个共享项中的文件及目录权限,就不要打开强制选项,在smb.conf文件中按照下面这样来设置:
security mask = 0777
force security mode = 0
directory security mask = 0777
force directory security mode = 0
如前所说,Samba 2.0.4中的以下选项:
create mask
force create mode
directory mask
force directory mode
可以用于替换前面那四个选项。
--------------------------------------------------------------------------------
8.7. 使用文件属性映射
Samba可以把文件的DOS属性映射为UNIX权限,但这会与安全对话框中设置的那些权限位造成冲突。
如果有一个UNIX文件,其拥有者对它没有读权限的话,在NT的标准属性对话框中会显示该文件为“只读”(译者注:有这种无聊的情况吗?)。当然,在这个属性对话框中,用户还是可以用上面提到过的“安全”书签把对文件的读权限改回来的,但如果在属性对话框中点击“确定”按钮,那么NT又会把文件属性变成只读(因为属性对话框中显示的还是“只读”嘛),所以只能用“取消”按钮来退出这个对话框使更改生效。
--------------------------------------------------------------------------------
Chapter 9. OS2客户HOWTO
9.1. 常见问答集
9.1.1. 如何把OS/2 Warp Connect或OS/2 Warp 4配置成Samba的客户端?
完整的解决方案请参考:http://carol.wins.uva.nl/~leeuw/samba/warp.html。
基本上需要三个组件:
文件和打印客户程序(‘IBM Peer')
TCP/IP (‘Internet支持')
“NetBIOS over TCP/IP”驱动程序 (‘TCPBEUI')
你可以参考Warp的使用手册来安装前两个组件。如果已装好了系统,现在要加入网络支持的话,在“系统设置”文件夹中选择“网络安装”就可以了。
不过,手册中没有提到如何安装“NetBIOS over TCP/IP”驱动程序。其实只要启动MPTS.EXE程序,点击“配置LAPS”,在“协议”中点击“IBM OS/2 NETBIOS OVER TCP/IP”,在“当前配置”行中点击“更改号码”,把0改为1,然后保存配置就可以了。
如果Samba服务器不在本地子网中,就要在“服务器名列表”中添加它们的IP地址和主机名;或者指定一台WINS服务器(IBM及RFC把它称为‘NetBIOS名字服务器')。如果你使用的是Warp Connect,还需要把‘IBM Peer'更新到与Warp 4的相同的版本上。详情请参考上述网址。
--------------------------------------------------------------------------------
9.1.2. 如何把How can I configure OS/2 Warp 3 (非Connect版)、OS/2 1.2、1.3或2.x配置成Samba的客户端?
从ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/获得微软为OS/2客户免费提供的LAN Manager 2.2c Client程序,它的安装和使用方法请参考http://carol.wins.uva.nl/~leeuw/lanman.html。这里简单介绍一下,在安装这套客户端程序之前,编辑OS/2引导分区根目录中的OS2VER文件,加入以下行:
20=setup.exe
20=netwksta.sys
20=netvdd.sys
另外,别用它提供的NE2000驱动程序,因为它有很多错误。请到ftp://ftp.cdrom.com/pub/os2/network/ndis/去找找吧。
--------------------------------------------------------------------------------
9.1.3. 把OS/2(任何版本)作为客户端还有其它的问题吗?
当你使用NET VIEW命令或“文件打印客户资源浏览器”时,会看不到Samba服务器。http://carol.wins.uva.nl/~leeuw/samba/fix.html提供了一个解决方法。在更新的Samba版本中也会解决这个问题。它还修正了其它一些问题,如,从工作区把对象拖到Samba服务器时可以保持其长文件名。
--------------------------------------------------------------------------------
9.1.4. 如何让OS/2客户下载打印机驱动程序呢?
首先创建一个叫[PRINTDRV]的共享项。把OS/2打印机的驱动程序文件(一定要用原始安装文件)拷到那个目录里。
接着在服务器上装好该打印机的NT版驱动程序,然后在smb.conf文件中加入选项“s2 driver map = 文件名”。而在后面指定的文件中用以下的形式把NT驱动程序名映射成OS/2的名称:
= .<设备名>
如:HP LaserJet 5L = LASERJET.HP LaserJet 5L
当然了,你可以在这个文件中对多个驱动程序进行映射。
注意,如果上述映射中没有指定设备名的话,第一次下载时OS/2系统会提示无法获得驱动程序文件,这时再试一下就可以成功了。解决的办法就是加上设备名罗!
译者注:由于译者从未使用过OS/2,对于此章的内容读者如有任何疑问请参考原文:Samba-HOWTO-Collection.html
--------------------------------------------------------------------------------
Chapter 9. 中文翻译版致谢
在本文的翻译过程中,得到了Layman、Solobaby的大力支持,感谢他们在我绞尽脑汁的时候提供了最正确最严谨的建议! - 5/15/2001
php爱好者站 http://www.phpfans.net 为phper提供一切资讯.
Samba主站。在这里我们提供了离你最近的镜像站点!
Samba镜像站中的开发文档可能会提到你的问题。如果是这样的话,就说明开发者正在解决它。
看看Scott Merrill是如何来模拟备份域控制器的:http://www.skippy.net/linux/smb-howto.html。
在http://bioserve.latrobe.edu.au/samba中,David Bannon维护了一篇把2.0.7作为PDC的文章。
在http://samba.org/cifs/中有其它关于CIFS的信息。
在http://mailhost.cb1.com/~lkcl/ntdom/中有关于UNIX上的NT域的内容。
早期SMB规范:ftp://ftp.microsoft.com/developr/drg/CIFS/
--------------------------------------------------------------------------------
6.6.2. 邮件列表
如何从邮件列表中获得帮助?
Samba有许多相关的邮件列表。请到http://samba.org选择离你最近的镜像站点,然后选Support栏中的Samba related mailing lists。
与Samba TNG有关的问题请到http://www.samba-tng.org。但请不要把这类问题发到Samba的主列表中去。
在使用邮件列表时请遵循以下规则:
记住,开发者是志愿工作者,他们没有任何收益,也不保证其观点百发百中,通常也只能算是最佳建议而已。
尽可能提供你所使用的Samba及操作系统的版本,还有smb.conf的有关部分,至少要给出影响PDC功能的[global]段中的选项。
如果你是通过CVS获得代码的,那么除了代码版本之外,还应提供最后一次刷新的日期。
请尽量简单厄要地表达问题,不要用html格式来发送邮件。
不要讨论无关的问题。
不要交叉投递,请选择最合适的列表进行提问。很多人都订阅了多个列表,他们讨厌过多地看到同一话题。如果有人看到某个问题更适合其它列表,会帮你转发过去的。
如果要讨论一个调试方面的问题,请不要把整个记录都发上来,提供相应的出错信息足矣。
如果你有一个完整的netmon跟踪信息(从打开管道到出错),那么就把*.cap文件发上来吧。
在邮件中夹带附件请三思而后行,最好只提供相关的部分。要知道Samba的邮件列表有大量的订阅者,不是每个人都希望收到一份smb.conf的。
如何取消邮件列表?
要退订请去当初订阅的地方看看:http://lists.samba.org,或者看一下这里。请不要在邮件中询问如何退订。
--------------------------------------------------------------------------------
6.7. DOMAIN_CONTROL.txt:Samba & Windows NT域控制
该附录的原作者为Samba开发小组的John H Terpstra。
注意:“域控制器”和那些与之相关的术语同属于一种特殊验证方法,这种方法是建立SMB域的基础。在Windows NT Server 3.1之前,各家公司都单独开发了域控制器,并各自对LAN Manager 2.1协议进行了扩展。Windows NT则使用了微软自己的方法来分发用户验证数据库。DOMAIN.txt文件举例说明了Samba基于共享验证数据库机制参与或建立SMB域的方法,它和Windows NT的SAM是不同的。
Windows NT Server既可作为独立的文件和打印服务器,也可作为参与域控制的服务器(域成员、主域控制器或备份域控制器)。
OS/2 Warp Server、Digital Pathworks和其它类似产品在这方面的功能都很相似,它们都可以同Windows NT一起参与域控制。但只有那些含有兼容Windows NT代码的服务器才可以作主域控制器(如Windows NT Server、Advanced Server for Unix)。
对很多人来说这些术语实在是太令人混淆了,所以让我们来解释一下。
每个Windows NT系统(工作站或服务器)都有一份注册表数据库。该注册表含有所有在NT环境中运行的服务(与UNIX的后台进程类似)的初始信息。同时,注册表还包括应用程序所需动态库的位置。其实,它囊括了系统运作所需的全部信息。
在任何Windows NT机器上,只要打开一个命令提示符并输入以下命令就可以找到注册表文件:
C:WINNT>dir %SystemRoot%System32config
其中的环境变量%SystemRoot%可以用下面的命令得到:
C:WINNT>echo %SystemRoot%
你需要了解的主要几个注册表部件就是这些文件:default、system、software、sam和security。
在一个域环境中,Windows NT域控制器会互相复制SAM和SECURITY文件,这样就保证了域中所有控制器数据的一致性。
Windows NT系统是由一种安全模式构成的,在这种模式中,所有待运行的应用程序和服务都必须先向安全管理器验明自身以获得所需的适当权限。而且NT的用户数据库也位于注册表中,这些数据包括用户的安全标识符、主目录、组成员资格、桌面配置等等。
每个NT系统(工作站与服务器)都有自己的注册表。参与域安全控制工作的NT服务器共享一套公有的数据库,而工作站及独立服务器则各自拥有一份完全独立的注册表数据库,在这一点上,这两种系统是有区别的。
NT的用户数据库称为SAM(Security Access Manager),使用它可以完成所有用户的验证工作,另外还有交叉验证(例如,确保用户请求的服务项根据用户的权限进行工作)。
Samba开发小组已经提供了一个工具,用来把NT的SAM转换为smbpasswd格式。该工具可以在离你最近的Samba镜像站的/pub/samba/pwdump找到,详情可以参见ENCRYPTION.txt文件。这个工具虽然很有用,但要用它把SAM复制到Samba系统上却并不那么容易。
在一个由配置好了的NT服务器所控制的安全域系统中,Windows for Workgroups、Windows 95和Windows NT Workstations/Servers都可以协同工作。每个这样的域最多只能有一台主域控制器(PDC);而每个域至少要有一台备份域控制器(BDC)。这些域控制器要互相复制SAM数据库,因此它们的注册表中都会有最新的SAM信息。
--------------------------------------------------------------------------------
Chapter 7. 用Winbind在Windows NT与UNIX间进行统一登录
7.1. 概要
在异种计算机环境中通过统一登录来集成UNIX和Windows NT系统长期以来一直是人们追求的目标。我们向你推荐一个称为winbind的Samba组件来解决统一登录的问题。它在UNIX上实现了微软的RPC调用、可插式验证模块和名字服务切换,通过这些功能可以使NT域用户能在UNIX主机上以UNIX用户身份进行操作。本文对winbind系统进行了描述,解释了它所提供的功能以及配置和内部工作原理方面的问题。
--------------------------------------------------------------------------------
7.2. 介绍
大家都知道UNIX和Windows NT系统使用不同的技术和方式来表示用户和组信息。这就使得集成这两种系统变得更加困难。
现在常用的方法之一,就是在两种系统上创建相同的用户账号,并使用Samba在两者之间提供文件和打印服务器。但是这种方法还不是很完美,因为在一大堆机器上维护账号是件麻烦事儿,而且在两种系统间使用两套口令既容易引起同步问题,又使用户感到很混乱。
于是,我们就把UNIX主机的统一登录问题划分成三个小问题来看:
获得Windows NT用户和组信息
验证Windows NT用户
为Windows NT用户更改口令
最理想的情况是,所使用的方法应该可以解决以上所有的问题,并且无须在UNIX主机上复制信息,也无须使系统管理员在维护这两种系统的用户及组信息时产生额外的负担。winbind系统提供了一套解决上述三个问题简单而漂亮的方案。
--------------------------------------------------------------------------------
7.3. Winbind的功能
winbind把一台UNIX主机变成一个完全的域成员,这样就可以统一管理UNIX和NT上的账号了。这时,这台UNIX主机将可以查看NT的用户及组信息,就好象这些信息是UNIX本地的一样,同时,使用户可以在纯UNIX环境里象使用NIS+一样的来使用NT域。
最后实现的结果是,当UNIX主机向操作系统查询任何用户或组名时,该查询都会被发往指定域中的NT域控制器。因为winbind通过系统低层(使用C库中的NSS名字解析模块)重定向了该查询,而这对NT域控制器来说是完全透明的。
UNIX主机上的用户可以把NT用户及组名当作“本地”账号来用,还可以把文件的属主改成NT域用户,甚至可以用一个域用户的身份登录到UNIX主机并运行一个X-Window会话。
使用winbind要当心的唯一问题,就是用户名和组名使用DOMAINuser和DOMAINgroup这样的形式,这是winbind所必须的,因为它要用这种形式来检测重定向查询的目标域控制器,并考虑信任域的问题。
另外,winbind还利用了可插式验证模块(PAM)通过NT域向任何使用PAM的应用程序提供验证服务。这就解决了系统间的口令同步问题,因为所有口令都保存在一个单一的位置上(域控制器中)。
--------------------------------------------------------------------------------
7.3.1. 使用目标
winbind的服务目标是那些要把UNIX工作站或服务器加到现有NT域结构的机构。这些机构可以利用winbind在无须维护单独账号结构的情况下配置UNIX工作站,这就减少了向NT结构中添加UNIX工作站的管理费用。还有,使用winbind可以把基于UNIX的设备环境集成到基于微软系统的域结构中去。
--------------------------------------------------------------------------------
7.4. winbind如何工作
winbind系统是按客户机/服务器结构设计的。一个持续运行的winbindd进程监听一个UNIX套接字,并等待请求的到达。这些请求是由运行NSS和PAM的客户机产生的,服务器按序对其进行处理。
下面详细描述winbind的实现技术。
--------------------------------------------------------------------------------
7.4.1. Microsoft远程过程调用
在过去的两年中,Samba开发小组的各位成员已经对微软的远程过程调用系统(MSRPC)进行了分析!在Windows NT主机上,很多与网络有关的操作都使用了这套系统,如远程管理、用户验证以及打印假脱机。虽然,一开始对该系统的分析工作只是为了有助于在Samba中实现主域控制器功能,但是,同时又产生了大量有其它用途的代码。
winbind使用各种MSRPC调用来处理域用户和组信息,并以此获得个别用户或组的详细情况。MSRPC调用还可以用于验证NT域用户并更改它们的口令。winbind向NT主域控制器直接查询用户及组信息,并把这些NT的账号信息映射到UNIX的用户名和组名上。
--------------------------------------------------------------------------------
7.4.2. 名字服务切换
名字服务切换(NSS)是很多UNIX操作系统所具有的功能。使用它可以从不同的资源中解析系统信息,如主机名、邮件别名和用户信息等。例如,单独的UNIX工作站可以从一系列保存在本地系统上的平面文件中解析系统信息;而网络工作站则可以先从本地文件中获得系统信息,再参考NIS数据库查询用户信息或从DNS服务器查询主机信息。
在解析UNIX用户名和组时,使用NSS应用编程接口的winbind就象一个系统信息源。而另一方面,它通过使用MSRPC调用获得NT服务器的信息,并使用上述接口提供一套新的账号信息表。使用这套标准UNIX库调用的好处是,只要在运行winbind的UNIX主机上查阅一次用户和组信息,就可以象在本地一样查看NT域及其受托域在内的所有用户和组信息。
NSS主要的控制都包含在/etc/nsswitch.conf文件中。当一个UNIX应用程序产生一个查询请求时,C库就会在该文件中查找与所请求之服务类型相匹配的行。例如,当查询用户和组信息时,就使用“passwd”这个服务类型。对指定服务类型的进一步查找则按其配置次序进行,例如,如果passwd配置行为:
passwd: files example
那么标准C库首先装入模块/lib/libnss_files.so,然后才是/lib/libnss_example.so。从这里可以看出,它会依次动态地进行装载,然后使用模块调用解析器功能来尝试对请求进行解析,完成之后就把结果返回给应用程序。
使用NSS接口,winbind可以很方便地与操作系统结合。我们要做的只是把libnss_winbind.so放到/lib/目录中,并在/etc/nsswitch.conf文件的适当位置添加“winbind”,到时候C库就会调用winbind去解析用户名和组名了。
--------------------------------------------------------------------------------
7.4.3. 可插式验证模块
可插式验证模块(PAM)是一套对验证和授权技术进行抽象化的系统。使用PAM模块,可以为不同的系统应用指定不同的验证方法,而无须重新编译这些应用。另外,还可以使用PAM实现特殊的授权策略。例如,系统管理员可以限制用户在登录控制台时使用本地口令文件,在进行网络登录时使用NIS数据库。
winbind使用验证管理和口令管理这两种PAM接口把NT用户集成到UNIX系统中。这样,NT用户就可以由合适的主域控制器进行验证,然后登录到UNIX主机中,之后,这些用户就可以更改他们的口令,并使更改立即在主域控制器上生效。
PAM的一组配置文件位于/etc/pam.d/,它们用于各种验证服务。当应用程序产生一个验证请求时,PAM代码就会查找这些配置文件,以便决定按什么样的次序装载哪些模块来执行验证核查。利用PAM的这种多接口形式可以很方便地为winbind添加新的验证服务。只须把pam_winbind.so模块拷贝到/lib/security/目录中,并更新配置文件,使相关的服务通过winbind来进行验证。详情请参考PAM文档。
--------------------------------------------------------------------------------
7.4.4. 用户及组ID的分配
当在Windows NT中建立一个用户或组账号时,系统就为之分配一个数字关系符(RID),而UNIX则在一定的数字范围内使用合适的值产生uid和gid。winbind要做的就是对这两种标识符进行互相转换,它在UNIX系统可用的uid和gid范围中寻找可用于保存NT用户和组账号的值。当首次解析NT用户时,就把该范围内可用的下一个uid值分配给他,对于解析组账号也是同样操作。今后,winbind就可以把NT账号完全映射到UNIX账号了。winbind把映射结果保存在tdb数据库中,保证了映射操作的可靠性。
--------------------------------------------------------------------------------
7.4.5. 缓存结果
持续运行的系统会产生大量的用户及组账号查询。为了使这些查询不影响网络流量,winbind使用了一种缓存机制,这种机制是基于PDC所提供的SAM序列号的。winbind把PDC返回的用户及组账号信息和序列号一起缓存起来,只要修改了用户或组账号信息,NT就会把对应的序列号增值,如果winbind发现一个缓存过的序列号过期了,就再向PDC发出请求,并把返回结果与缓存项进行比较,如不匹配,就丢弃缓存信息,直接向PDC要求更新。
--------------------------------------------------------------------------------
7.5. 安装及配置
安装winbind最简单的方法就是使用Samba镜像站提供的工具包了,它位于站点的pub/samba/appliance/目录中。这些工具包向你提供了处于snapshots阶段的Samba源代码,以及具备完整功能的winbind二进制程序。由于winbind需要少量的Samba_TNG代码,而Samba_TNG还处于开发阶段,因此安装起来就要比普通的Samba版本稍微复杂一点。
完成安装之后最好读一下winbindd(8)手册页,它提供了完整的配置信息及配置样本。
--------------------------------------------------------------------------------
7.6. 限制
在当前版本中,winbind还存在一些限制,我们希望在将来的版本中克服这些限制:
winbind现在还只有Linux版,当然要把它移植到其它操作系统是完全可能。要实现这样的目标,需要其它操作系统中的C库支持“名字服务切换”和“可插式验证模块”,而对大多数UNIX系统来说,这两样通常都是可以获得的。
winbind在对两种系统的标识符进行映射时并没有使用什么更好的算法,它是根据未映射的用户及组账号的次序来看的。如果包含映射信息的文件有问题或被破坏的话,它很难对其进行恢复。
现在,winbind的PAM模块还无法对NT用户设置的可登录工作站及登录时间限制进行记账。
在对winbind的源代码进行编译时要花很长时间,因为它要组合两个Samba分支的源代码。正在考虑的解决方法是,在主分支代码中提供所有必须的功能。
--------------------------------------------------------------------------------
7.7. 结语
winbind系统通过使用“名字服务切换”、“可插式验证模块”以及适当的MSRPC调用向UNIX系统提供了对NT域用户的无缝集成,减少了使用混合系统的网络管理负担。
--------------------------------------------------------------------------------
Chapter 8. UNIX权限位和Windows NT访问控制表
8.1. 用NT安全对话框浏览和修改UNIX权限
在Samba 2.0.4版本中提供了一个新的功能,可以让NT客户在NT上使用安全设置对话框来浏览和修改UNIX权限。但要注意的是,这并不影响运行Samba服务器的UNIX主机安全,它还是得服从Samba管理员所设置的文件权限。在Samba 2.0.4及以上版本中,我们已经把选项nt acl support的缺省值从false改为了true,所以缺省就允许了上述功能。
--------------------------------------------------------------------------------
8.2. 如何浏览Samba共享项上的文件权限
在NT 4.0上,用鼠标右键单击Samba共享盘或UNC路径上的任何文件或目录,在弹出的下拉菜单底部选属性项,这时会打开文件属性对话框,而Samba 2.0.4会在其中添加一个新的书签:安全。在这一页中又有三个按钮:权限、审核、所有者。其中,审核按钮的使用权限取决于你的账号身份。而此时,对Samba共享项来说这个对话框并没有什么用处,因为添加这个有用的按钮现在还不能查看用户列表。
--------------------------------------------------------------------------------
8.3. 浏览文件所有权
点击“所有者”按钮就可以看到所选文件的属主,属主名形如:
“服务器名用户名 (长名)”
其中的服务器名为Samba服务器的NetBIOS名,而用户名则是拥有该文件的UNIX用户名,后面的(长名)是该用户的描述信息(通常取自口令数据库的GECOS字段)。
如果你把选项nt acl support设为false的话,那么显示的文件属主就是NT用户“Everyone”。不过你现在还无法更改文件属主,因为这是属于root才能做的特权操作。
Samba开发小组的Jeremy Allison写一套NT的安全库,它叫做Seclib。NT上的用户可以使用它以管理员权限连接到Samba 2.0.1服务器,然后作为root身份更改本地NTFS文件系统、远程NTFS文件系统或Samba共享盘上的文件属主权。你可以在Samba主站的ftp上找到这套库。
--------------------------------------------------------------------------------
8.4. 浏览文件或目录权限
使用“权限”按钮可以查看所选文件或目录的权限及unix属主。显示的属主格式为:
"服务器名用户名 (长名)"
这些名词的含义与上面提到的那个一样。如果你把选项nt acl support设为false的话,那么显示的文件属主就是NT用户“Everyone”,而对应的权限则是“完全控制”。
文件和目录所显示的权限信息是不一样的,下面分别来介绍一下。
--------------------------------------------------------------------------------
8.4.1. 文件权限
Samba把标准UNIX权限中的“读”、“写”、“执行”映射到NT的三个ACL元素‘r'、‘w'和‘x',以便分别对应NT权限。UNIX的其他人权限被映射到NT的全局组Everyone上,而UNIX的文件所有人及所在组的权限就对应到了NT的用户和本地组之上。
由于很多UNIX权限设置不能映射为NT常用的“读”、“更改”和“完全控制” ,所以在NT上显示这些权限时只能带上“特殊访问”的前缀词了。
那么在UNIX中,无权访问文件如何来表示呢?为使用户可以查看和修改“无权访问”,Samba把这它放到了NT的ACL属性“取得权限”(在UNIX中无意义)上,并向NT表示成“0”权限位,这也说明了没有权限。More details on the decision behind this will be given below.
--------------------------------------------------------------------------------
8.4.2. 目录权限
NTFS文件系统有两种不同的目录权限设置。第一种是目录本身的ACL设置,通常在权限列表的第一个圆括号显示为“RW”这种形式。Samba把这种目录权限同上述的文件权限一样来处理。
第二种是“继承”权限,该目录中的任何文件都会在创建时继承它的权限。在UNIX中是没有这种概念的。Samba使用NT的ACL实现了这种继承权限,这样在Samba共享项中建立新文件时可以得到该共享的UNIX权限。
--------------------------------------------------------------------------------
8.5. 修改文件或目录权限
要修改文件和目录的权限,只要在安全对话框中更改所显示的权限即可。但是,用户在操作标准Samba权限掩码时还是有些限制的,另外也要考虑DOS属性的映射问题。当然,如果你把选项nt acl support设为false,那么就无法设置权限了,你只能得到“拒绝访问”这样的信息。
首先要注意的是,你点击“添加”按钮之后,并不能获得Samba 2.0.4系统上的用户列表(你会得到“远程过程调用执行失败”这样的错误信息)。此时你只能对对话框中列出的现有权限进行操作,其实这也就够了,因为UNIX系统上只有这些权限。(译者注:我发现新版本2.2.0就可以得到用户列表了。)
如果你在NT安全对话框中删除了三组权限(用户、组或其他人)中的设置,那么就清除了UNIX系统上的相应权限位。当再次查看文件或目录的权限时,就会看到前面提到的那个“0”标志了。当然,你在这里可以改回原来的权限设置。
还有,UNIX只支持三个NT的ACL权限位“r”、“w”、“x”,所以Samba服务器将忽略那些其它的NT安全属性。
当你对目录设置权限时,权限列表的第二个圆括号中的权限会应用到该目录中的所有文件之上。如果你不希望产生这种效果,只要清除“替换已存在文件的权限”复选框就可以了。
如果要清除某一项权限,只要选择那一项点击“删除”按钮就可以了;或者把这它设为“取得权限”,这时NT会把该项显示为“0”。
--------------------------------------------------------------------------------
8.6. 使用创建掩码选项
Samba 2.0.5向用户提供了四个新的创建掩码选项:
security mask
force security mode
directory security mask
force directory security mode
当用户在NT上更改远程文件的权限时,Samba就把它们映射为UNIX标准权限,并把它们与security mask选项的值进行比较,如果该选项没有把被更改权限所对应的那一位设为1,就忽略这一位的更改(标准UNIX权限有12位)。如果把该选项的某一位设为0,那么用户就不能更改这一位所对应的权限了。
如果你没有明确地这个选项,那么它的值就和create mask 选项的值相同。如果想允许用户修改文件的所有权限(三个权限组),就把它设为0777就可以了。
接着,Samba把更改的权限再与force security mode选项进行比较,该选项值为1的那一位所对应的权限位将被强行置位为1。如果把该选项的某一位设为1,则用户修改的权限中所对应的那一位也总是被置位为1。
同上面一样,缺省该选项的值与force create mode选项相同。如果不想限制用户修改文件的所有权限(三个权限组),就把它设为000吧。
注意,在对更改请求使用这两个选项时是按上述的次序进行的。
而对于目录来说,Samba执行的操作也与文件类似,它使用的是directory security mask和force directory security mode 这两个选项。它们的缺省值分别与directory mask 和force directory mode的值相同。
Samba管理员可以使用这些方法对每个共享项进行权限设置,这样就可以限制用户对权限位的修改。
如果你希望允许用户完全控制一个共享项中的文件及目录权限,就不要打开强制选项,在smb.conf文件中按照下面这样来设置:
security mask = 0777
force security mode = 0
directory security mask = 0777
force directory security mode = 0
如前所说,Samba 2.0.4中的以下选项:
create mask
force create mode
directory mask
force directory mode
可以用于替换前面那四个选项。
--------------------------------------------------------------------------------
8.7. 使用文件属性映射
Samba可以把文件的DOS属性映射为UNIX权限,但这会与安全对话框中设置的那些权限位造成冲突。
如果有一个UNIX文件,其拥有者对它没有读权限的话,在NT的标准属性对话框中会显示该文件为“只读”(译者注:有这种无聊的情况吗?)。当然,在这个属性对话框中,用户还是可以用上面提到过的“安全”书签把对文件的读权限改回来的,但如果在属性对话框中点击“确定”按钮,那么NT又会把文件属性变成只读(因为属性对话框中显示的还是“只读”嘛),所以只能用“取消”按钮来退出这个对话框使更改生效。
--------------------------------------------------------------------------------
Chapter 9. OS2客户HOWTO
9.1. 常见问答集
9.1.1. 如何把OS/2 Warp Connect或OS/2 Warp 4配置成Samba的客户端?
完整的解决方案请参考:http://carol.wins.uva.nl/~leeuw/samba/warp.html。
基本上需要三个组件:
文件和打印客户程序(‘IBM Peer')
TCP/IP (‘Internet支持')
“NetBIOS over TCP/IP”驱动程序 (‘TCPBEUI')
你可以参考Warp的使用手册来安装前两个组件。如果已装好了系统,现在要加入网络支持的话,在“系统设置”文件夹中选择“网络安装”就可以了。
不过,手册中没有提到如何安装“NetBIOS over TCP/IP”驱动程序。其实只要启动MPTS.EXE程序,点击“配置LAPS”,在“协议”中点击“IBM OS/2 NETBIOS OVER TCP/IP”,在“当前配置”行中点击“更改号码”,把0改为1,然后保存配置就可以了。
如果Samba服务器不在本地子网中,就要在“服务器名列表”中添加它们的IP地址和主机名;或者指定一台WINS服务器(IBM及RFC把它称为‘NetBIOS名字服务器')。如果你使用的是Warp Connect,还需要把‘IBM Peer'更新到与Warp 4的相同的版本上。详情请参考上述网址。
--------------------------------------------------------------------------------
9.1.2. 如何把How can I configure OS/2 Warp 3 (非Connect版)、OS/2 1.2、1.3或2.x配置成Samba的客户端?
从ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/获得微软为OS/2客户免费提供的LAN Manager 2.2c Client程序,它的安装和使用方法请参考http://carol.wins.uva.nl/~leeuw/lanman.html。这里简单介绍一下,在安装这套客户端程序之前,编辑OS/2引导分区根目录中的OS2VER文件,加入以下行:
20=setup.exe
20=netwksta.sys
20=netvdd.sys
另外,别用它提供的NE2000驱动程序,因为它有很多错误。请到ftp://ftp.cdrom.com/pub/os2/network/ndis/去找找吧。
--------------------------------------------------------------------------------
9.1.3. 把OS/2(任何版本)作为客户端还有其它的问题吗?
当你使用NET VIEW命令或“文件打印客户资源浏览器”时,会看不到Samba服务器。http://carol.wins.uva.nl/~leeuw/samba/fix.html提供了一个解决方法。在更新的Samba版本中也会解决这个问题。它还修正了其它一些问题,如,从工作区把对象拖到Samba服务器时可以保持其长文件名。
--------------------------------------------------------------------------------
9.1.4. 如何让OS/2客户下载打印机驱动程序呢?
首先创建一个叫[PRINTDRV]的共享项。把OS/2打印机的驱动程序文件(一定要用原始安装文件)拷到那个目录里。
接着在服务器上装好该打印机的NT版驱动程序,然后在smb.conf文件中加入选项“s2 driver map = 文件名”。而在后面指定的文件中用以下的形式把NT驱动程序名映射成OS/2的名称:
= .<设备名>
如:HP LaserJet 5L = LASERJET.HP LaserJet 5L
当然了,你可以在这个文件中对多个驱动程序进行映射。
注意,如果上述映射中没有指定设备名的话,第一次下载时OS/2系统会提示无法获得驱动程序文件,这时再试一下就可以成功了。解决的办法就是加上设备名罗!
译者注:由于译者从未使用过OS/2,对于此章的内容读者如有任何疑问请参考原文:Samba-HOWTO-Collection.html
--------------------------------------------------------------------------------
Chapter 9. 中文翻译版致谢
在本文的翻译过程中,得到了Layman、Solobaby的大力支持,感谢他们在我绞尽脑汁的时候提供了最正确最严谨的建议! - 5/15/2001
php爱好者站 http://www.phpfans.net 为phper提供一切资讯.
相关阅读 更多 +