2025年打印机共享常见问题(打印机共享失败原因)

打印机共享常见问题(打印机共享失败原因)p Samba 2 2 之前的版本已实现了少量的 Windows NT 4 0 主域控制器功能 而 2 2 版还完成了下面这些功能 p ul li p Windows NT 4 0 2000 客户进行域登录 p li li p p li ul

大家好,我是讯享网,很高兴认识大家。




讯享网

<p>
	Samba 2.2之前的版本已实现了少量的Windows NT 4.0主域控制器功能。而2.2版还完成了下面这些功能:
</p>
<ul>
	<li>
		<p>
			Windows NT 4.0/2000客户进行域登录
		</p>
	</li>
	<li>
		<p>
			在用户安全级中加入Windows 9x客户
		</p>
	</li>
	<li>
		<p>
			从Samba主域控制器中接收Windows客户的用户及组列表
		</p>
	</li>
	<li>
		<p>
			漫游用户设置
		</p>
	</li>
	<li>
		<p>
			Windows NT 4.0风格的系统策略
		</p>
	</li>
</ul>
<p>
	但还有这些功能没有实现:
</p>
<ul>
	<li>
		<p>
			Windows NT 4域信任
		</p>
	</li>
	<li>
		<p>
			Windows NT 4.0域控制器的安全账号数据库复制(如,Samba主域控制器与NT备份域控制器进行复制,或反之)
		</p>
	</li>
	<li>
		<p>
			通过用户管理器向域中添加用户账号
		</p>
	</li>
	<li>
		<p>
			实现Windows 2000域控制器功能(如Kerberos和活动目录)
		</p>
	</li>
</ul>
<p>
	请注意,在本文所描述的Windows 9x客户并不是域中的真正成员。因此,支持Windows 9x域登录风格的协议与NT4域登录是完全不同的,而且这个功能早就被正式支持了。
</p>
<p>
	从Samba 2.2.0开始,正式支持了NT**格的域登录,适用于Windows NT 4.0和Windows 2000 (包括SP1)客户。本文描述了把Samba配置成PDC所必须的步骤。开始之前请先确保它正常工作,否则请参考UNIX_INSTALL.html&nbsp;以及smb.conf(5)的手册页&nbsp;。
</p>
<p>
	具体实现基本上分为两步:
</p>
<ol type="1">
	<li>
		<p>
			配置Samba作为PDC
		</p>
	</li>
	<li>
		&nbsp;
		<p>
			建立机器信任账号并把客户加入到域中来
		</p>
	</li>
</ol>
<p>
	另外还有一些次要的东西如用户配置、系统策略等。但这些并不是必须的,而且,这和Windows NT的网络概念是差不多的,这里只简单地提一下了。
</p>
<hr />

<p>
	首先是服务器工作所必须的smb.conf选项,在此就不详细解释了,详情请参见smb.conf(5)的手册页&nbsp;。为方便读者,我们已经把这些选项链接到smb.conf中实际的描述上了(译者注:如果你是单独获得这个文件的,请把它放到html版的手册页目录中去)。
</p>
<p>
	以下是实现PDC的样本配置文件:
</p>
<div border="0" bgcolor="#e0e0e0" style="width:708px;" class="ke-zeroborder">
	<tbody>
		<tr>
			<td>

			</td>
		</tr>
	</tbody>
</div>
<p>
	对上面的配置,有几点需要强调一下:
</p>
<ul>
	<li>
		<p>
			必须使用加密口令,工作原理请参见ENCRYPTION.html&nbsp;文件。
		</p>
	</li>
	<li>
		<p>
			服务器必须支持域登录并具有[netlogon]&nbsp;共享项。
		</p>
	</li>
	<li>
		<p>
			为了使Windows客户查找域控制器,Samba服务器必须成为域主浏览器。
		</p>
	</li>
</ul>
<p>
	由于Samba 2.2并未真正实现NT组账号和UNIX组账号间的映射(原因一言难尽),所以你应该参考smb.conf文件中的domain admin users&nbsp;和domain admin group&nbsp;两个选项来建立域管理员之类的账号。
</p>
<hr />

<p>
	机器信任账号就是计算机账号。它的口令则是域控制器进行可靠通信所必须而且共享的机密。Windows 9x无法成为真正的域成员就是因为它不拥有机器信任账号,从而无法和域控制器协同工作。
</p>
<p>
	机器信任账号的口令是保存在NT主域控制器的注册表中的。而Samba主域控制器则把它们与用户的LanMan和NT散列口令(通常是smbpasswd&nbsp;文件)保存在同一个目录中。但机器信任账号只使用NT散列口令。
</p>
<p>
	要建立机器信任账号有两种方法:
</p>
<ul>
	<li>
		<p>
			在把客户加入到域之前,通过手工方式建立。如果用这种方法,那么这个机器信任账号的口令就是已知值 -- 小写的机器netbios名。
		</p>
	</li>
	<li>
		<p>
			在客户加入到域时建立机器账号。如果用这种方法,就把用于添加客户的管理账号的会话关键字作为产生随机口令值的密钥。
		</p>
	</li>
</ul>
<p>
	为了产生Windows NT的SID,Samba需要让机器账号占有一个UNIX的uid,所以,所有机器账号都要在/etc/passwd和smbpasswd中有相应的项存在。在将来的版本中将无须在/etc/passwd&nbsp;中建立相应项。
</p>
<p>
	在/etc/passwd&nbsp;文件中,机器账号的名称应该是机器名后加$符号,而且没有口令、登录shell及主目录等项。例如名为‘doppy’的计算机的账号应该是:
</p>
<div border="0" bgcolor="#e0e0e0" style="width:708px;" class="ke-zeroborder">
	<tbody>
		<tr>
			<td>

			</td>
		</tr>
	</tbody>
</div>
<p>
	如果你使用手工方式来建立机器账号,那么必须先在/etc/passwd&nbsp;(或NIS口令表)中建立相应项,然后再用如下命令格式在smbpasswd&nbsp;文件中添加机器账号:
</p>
<p>
	root#&nbsp;smbpasswd -a -m&nbsp;<em>machine_name</em>
</p>
<p>
	其中的<em>machine_name</em>&nbsp;为计算机的netbios名。
</p>
<p>
	<em>此时,请马上把该计算机加到域中去。</em>&nbsp;入侵者可以利用这种开放的账号访问域中的用户信息。
</p>
<p>
	如果你用的是在客户机加入域时自动建立其机器账号这种方法,那么需要在smb.conf中使用add user script&nbsp;选项并为其指定适当的值。以下示例可用于RedHat 6.2 Linux系统:
</p>
<div border="0" bgcolor="#e0e0e0" style="width:708px;" class="ke-zeroborder">
	<tbody>
		<tr>
			<td>

讯享网

add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M 钹re>

讯享网 </td> </tr> </tbody> </div> <p> 在Samba 2.2中,<em>只有root账号</em>&nbsp;才可以用这种方法来建立机器账号。因此在smbpasswd文件中还要<em>root</em>&nbsp;账号。但出于安全性考虑,最好为其另设口令,而不要使用同/etc/passwd&nbsp;中相同的口令。 </p> <hr /> <p> <em>机器账号后无法添加‘$’符号。</em> </p> <p> FreeBSD(和其它BSD系统)无法创建带‘$’符号的用户名。上述问题只有在创建账号时才会遇到,而建立之后就该账号就可以正常工作。所以可以先创建不带‘$’符号的用户账号,再用&nbsp;编辑账号的用户名,在后面添加‘$’。或者,索性使用vipw创建整个账号,但要注意必须使用一个唯一的uid! </p> <p> <em>在建立机器账号时系统提示“你已经连接到域中”。</em> </p> <p> 这说明你在客户端使用了一个不合法的账号来为计算机创建机器账号。请先退出,关闭初始连接并用其它合法的用户账号再试试。 </p> <p> 另外,如果你的计算机已是一个‘组成员’,而它所属的组名与要加入的域同名的话(真是个坏主意),也会得到这样的信息。只要更换工作组名,重启后再试就可以了。 </p> <p> <em>系统提示“加入到域时出现错误,提供的信任与现有设置发生冲突”</em> </p> <p> 这和上面提到的“你已经连接到域中……”是同一个问题。 </p> <p> <em>“系统无法为你提供登录(C000019B)”</em> </p> <p> 我已经顺利加入到域中,但在更换了Samba版本后,尝试登录时就得到这样的信息:“系统无法为你提供登录(C000019B),请再试一次或与你的管理员联系”。 </p> <p> 这是因为,保存在private/WORKGROUP.SID&nbsp;文件中的域SID发生了改变。例如,你删除了这个文件,但&nbsp;又自动再创建了一个;要么就是,你正在版本2.0.7、TNG和HEAD分支代码之间换来换去(不推荐这么做)。要解决这个问题只有一个办法,那就是恢复原始域SID信息,或者从域中删除该域客户并重新加入。 </p> <p> <em>“该计算机的机器账号不存在或不可访问”</em> </p> <p> 当我试着把客户机加入到域中时得到这样的信息,这是什么问题? </p> <p> 这说明PDC上没有与当前客户机相对应的机器账号。如果你是使用&nbsp;选项来建立账号,那么这就表示这个脚本在工作时出了问题,所以必须确保域用户管理正常进行。 </p> <p> 另外,如果你是通过手工方式来建立账号,那么这样的信息就说明建立的账号有问题。看一下/etc/passwd和smbpasswd文件中是否存在 机器账号,并确保其账号名是客户机的netbios名后加一个‘$’符号(如computer_name$)。另外,据说还有人发现,如果Samba服务 器与NT客户机的子网掩码不一致,也会发生这样的问题,这样的话你应该知道怎么解决了吧。 </p> <hr /> <p> 在Samba域中设置系统策略及漫游用户配置文件与在NT4域中是一样的。你应该阅读微软的白皮书&nbsp;。 </p> <p> 这里有一些额外的资料: </p> <p> <em>什么是Windows NT策略编辑器?</em> </p> <p> 要建立或编辑ntconfig.pol&nbsp;文件必须使用NT服务器策略编辑器&nbsp;,NT服务器版提供了这个程序。工作站版虽然也有一个策略编辑器,但不能用来建立<em>域策略</em>&nbsp;。此外,还可以在NT工作站/服务器上安装Windows 95的策略编辑器,但它无法以NT的方式来工作。然而,在工作站版中可以使用服务器版中的一些相应文件。所需的文件是poledit.exe&nbsp;、common.adm&nbsp;和winnt.adm&nbsp;,只要把两个*.adm文件放到c:/winnt/inf&nbsp;目录,程序会方便地进行查找。要注意的是inf目录是‘隐藏’的。 </p> <p> 在Windows NT 4.0的Service Pack 3(及更高版)中也提供了NT策略编辑器。只要用&nbsp;命令解开文件就可以了,如,对于service pack 6a就用&nbsp;。另外在Office97的策略样板文件及微软的零管理工具包中也可以找到该策略编辑器。 </p> <p> <em>Win95可以执行策略吗?</em> </p> <p> 只要在Win9x中安装组策略管理器就可以控制组策略了。该程序位于Win98光盘的/tools/reskit/netadmin/poledit目录中,双击grouppol.inf&nbsp;就可以完成安装。然后重复注册/登录数次来检查Win98是否执行了组策略。但每台Win9x主机都要安装一套,很麻烦。 </p> <p> 如果你发现没有正常执行组策略,可以升级Win9x的grouppol.dll文件。而相应的组列表会从服务器的/etc/group中取得。 </p> <p> <em>哪里有‘用户管理器’和‘服务器管理器’呢?</em> </p> <p> 因为我没有购买NT服务器版的光盘,到哪里去找‘域用户管理器’和‘服务器管理器’? </p> <p> 微软发布了一套名为nexus的用于windows 95系统的工具,它包含了: </p> <ul> <li> <p> 服务器管理器 </p> </li> <li> <p> 域用户管理器 </p> </li> <li> <p> 事件查看器 </p> </li> </ul> <p> 该工具可以从&nbsp;下载。 </p> <p> Windows NT 4.0版本的‘域用户管理器’和‘服务器管理器’可以通过微软的FTP站点&nbsp;下载。 </p> <hr /> <p> 在邮件列表、RFC和文档中可以获得很多资料。同Samba发布包随同提供的文档中对常见的SMB问题进行了很好地说明,如浏览问题等。 </p> <p> <em>有没有用于调试域登录操作的诊断工具?</em> </p> <p> Samba本身就是最好的调试诊断工具了。你可以对smbd和nmbd使用-d选项来为它们指定一个调试等级。关于这个选项,可以参考这两个进程的手册页及smb.conf文件。其中,调试等级的范围是从1(缺省值)到10(用于调试口令)。 </p> <p> 另外一个很有用的方法就是用&nbsp;选项来编译Samba。这样就会在二进制程序中包含调试功 能,你可以用gdb连接到正在运行中的smbd/nmbd进程中。要把gdb连接到一个为NT工作站提供服务的smbd进程,首先要在工作站那一端建立连 接,在登录时选择进入到域中,这样就会产生‘LsaEnumTrustedDomains’。然后,让工作站保持这个打开的连接,这时会有一个相应的 smbd进程处于运行状态中(假定没有把空闲超时设得太短),当你在工作站端输入口令时,服务器端就可以用gdb进行连接了。 </p> <p> 其它值得研究的Samba命令: </p> <ul> <li> <p> testparam | more </p> </li> <li> <p> smbclient -L //{服务器的netbios名} </p> </li> </ul> <p> 在&nbsp;有一个tcpdump的SMB专用版。另外,可以在&nbsp;找到另一个用于UNIX和Win32主机的包嗅探器Ethereal。 </p> <p> 要在Windows NT上进行监视工作,可以使用MSDN光盘、NT服务器版光盘或SMS光盘中提供的网络监视器(netmon)。SMS中提供的版本可以监视任意两个计算 机(要把网络接口置为混杂模式)间的通信数据包。而NT服务器版光盘提供的版本只能监视本地子网中流向自已及广播地址的通信数据包。另外,要注意 Ethereal可以读写netmon格式的数据文件。 </p> <p> <em>如何在NT工作站或Win9x机器上安装‘网络监视器’?</em> </p> <p> 在NT工作站上安装netmon可以按照以下的步骤进行,在这个例子中,安装的netmon版本是4.00.349,它来自Windows NT Server 4.0,并安装到Windows NT Workstation 4.0,但同时需要这两个版本的安装光盘。其它版本的netmon安装步骤类似。 </p> <p> 首先需要在NT服务器版上安装‘网络监视工具和代理’: </p> <ul> <li> <p> 点击‘开始’-‘设置’- ‘控制面板’- ‘网络’- ‘服务’- ‘添加’ </p> </li> <li> <p> 选择‘网络监视工具和代理’并点击‘确定’ </p> </li> <li> <p> 在网络控制面板上点击‘确定’ </p> </li> <li> <p> 按提示插入Windows NT Server 4.0安装光盘 </p> </li> </ul> <p> 这样,netmon程序就保存在%SYSTEMROOT%/System32/netmon/*.*&nbsp;。其中还有两个子目录,captures/&nbsp;和parsers/,后者存放分析数据包必须的DLL库。 </p> <p> 然后在工作站上进行安装: </p> <ul> <li> <p> 点击‘开始’-‘设置’- ‘控制面板’- ‘网络’- ‘服务’- ‘添加’ </p> </li> <li> <p> 选择‘网络监视工具和代理’并点击‘确定’ </p> </li> <li> <p> 在网络控制面板上点击‘确定’. </p> </li> <li> <p> 按提示插入Windows NT Workstation 4.0安装光盘 </p> </li> </ul> <p> 现在,把NT服务器的%SYSTEMROOT%/System32/netmon/*.*拷到工作站的%SYSTEMROOT%/System32/netmon/*.*,并设置适当的权限。注意,在NT上运行netmon需要管理员权限。 </p> <p> 如果为Windows 9x安装监视工具,需要从它的光盘上安装网络监视代理(/admin/nettools/netmon)。这个目录中还有一个readme文件,它介绍了安装步骤。 </p> <hr /> <p> 该附录的原作者为Samba开发小组的John H Terpstra。 </p> <p> <em>注意:</em>&nbsp;“域控制器”和那些与之相关的术语同属于一种特殊验证方法,这种方法是建立SMB域的基础。在Windows NT Server 3.1之前,各家公司都单独开发了域控制器,并各自对LAN Manager 2.1协议进行了扩展。Windows NT则使用了微软自己的方法来分发用户验证数据库。DOMAIN.txt文件举例说明了Samba基于共享验证数据库机制参与或建立SMB域的方法,它和 Windows NT的SAM是不同的。 </p> <p> Windows NT Server既可作为独立的文件和打印服务器,也可作为参与域控制的服务器(域成员、主域控制器或备份域控制器)。 </p> <p> OS/2 Warp Server、Digital Pathworks和其它类似产品在这方面的功能都很相似,它们都可以同Windows NT一起参与域控制。但只有那些含有兼容Windows NT代码的服务器才可以作主域控制器(如Windows NT Server、Advanced Server for Unix)。 </p> <p> 对很多人来说这些术语实在是太令人混淆了,所以让我们来解释一下。 </p> <p> 每个Windows NT系统(工作站或服务器)都有一份注册表数据库。该注册表含有所有在NT环境中运行的服务(与UNIX的后台进程类似)的初始信息。同时,注册表还包括应用程序所需动态库的位置。其实,它囊括了系统运作所需的全部信息。 </p> <p> 在任何Windows NT机器上,只要打开一个命令提示符并输入以下命令就可以找到注册表文件: </p> <p> C:/WINNT/>&nbsp;dir %SystemRoot%/System32/config </p> <p> 其中的环境变量%SystemRoot%可以用下面的命令得到: </p> <p> C:/WINNT/>&nbsp;echo %SystemRoot% </p> <p> 你需要了解的主要几个注册表部件就是这些文件:default、system、software、sam和security。 </p> <p> 在一个域环境中,Windows NT域控制器会互相复制SAM和SECURITY文件,这样就保证了域中所有控制器数据的一致性。 </p> <p> Windows NT系统是由一种安全模式构成的,在这种模式中,所有待运行的应用程序和服务都必须先向安全管理器验明自身以获得所需的适当权限。而且NT的用户数据库也位于注册表中,这些数据包括用户的安全标识符、主目录、组成员资格、桌面配置等等。 </p> <p> 每个NT系统(工作站与服务器)都有自己的注册表。参与域安全控制工作的NT服务器共享一套公有的数据库,而工作站及独立服务器则各自拥有一份完全独立的注册表数据库,在这一点上,这两种系统是有区别的。 </p> <p> NT的用户数据库称为SAM(Security Access Manager),使用它可以完成所有用户的验证工作,另外还有交叉验证(例如,确保用户请求的服务项根据用户的权限进行工作)。 </p> <p> Samba开发小组已经提供了一个工具,用来把NT的SAM转换为smbpasswd格式。该工具可以在离你最近的Samba镜像站的/pub /samba/pwdump找到,详情可以参见ENCRYPTION.txt文件。这个工具虽然很有用,但要用它把SAM复制到Samba系统上却并不那 么容易。 </p> <p> 在一个由配置好了的NT服务器所控制的安全域系统中,Windows for Workgroups、Windows 95和Windows NT Workstations/Servers都可以协同工作。每个这样的域最多只能有一台主域控制器(PDC);而每个域至少要有一台备份域控制器 (BDC)。这些域控制器要互相复制SAM数据库,因此它们的注册表中都会有最新的SAM信息。 </p> 
小讯
上一篇 2025-05-26 13:46
下一篇 2025-06-15 21:54

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/142445.html