本文是介绍如何利用Samba实现Linux与Windows98的资源共享,以及本人在实 现与使用中遇到的
各种问题,以及解决方法。
一、安装Samba:
由于Samba是RedHat 6.0内置的软件包,在安装Linux过程中选中即可。如果在安装过
程中没有安装Samba,可以在以后安装,具体步骤如下:
# mount /mnt/cdrom
# cd /mnt/cdrom/RedHat/RPMS/
# rpm -ivh samba-2.0.3-8.i386.rpm
注意利用ntsys命令检查,是否使Samba在启动Linux时启动SMB服务。
二、编辑Samba的配置文件:
Samba的配置文件smb. conf位于/etc目录下,可以设置各种参数,设置那些资源被共享、
以及其它用户对这些资源的操作权限等等。 smb.conf文件的格式非常容易理解,但由于
它的参数非常多,要快速地仔细了解各种参数的意义是非常困难的,在安装Samba时,系
统已经安装了一个Samba的配置文件样本,可以利用此文件,编辑与修改,在修改的过程
中,要注意理解配置文件的注释,使它适合自己的需求。 除了控制访问共享的定制外,
smb.conf有三个特殊段:[global]、[homes]和[printers]。[globals]段定义了整个过
程中的全局参数,并为其它段提供缺省值。 [homes]段定义远程用户存取在本地Linux机
的用户主目录的参数。[printers]段远程用户共享本地Linux的打印机。 有关smb.conf
文件的详细说明,参见smb.conf的man文档。这里只介绍需要修改的几个参数。[global]
段的workgroup值,它相当与Windows98的工作组名或者Windows NT的域名。
server string值,它类似Windows的网络配置中的计算机说明,这主要是便于Windows用
户了解共享哪台机器的资源。 删除[tmp]段的注解,主要是便于检测SMB的配置是否成功。
有关smb.conf配置文件的参数参见smb.conf(5)的man文档。在Samba2.0.3版本中,提供
swat实用程序,管理者利用浏览器来配置smb.conf文件,它通过inetd 服务启动,在浏
览器的地址中输入http://Linux主机名或ip地址:901,就可以利用浏览器来进行smb.conf
文件的配置与管理工作。 配置与修改完成后,可以通过命令testparm来检测smb.conf的配
置文件是否正确。 注意要使配置文件生效, 必须重新启动SMB服务。 执行
/etc/rc.d/init.d/smb restart 命令。
三、检测
1、Linux主机共享Windows主机的资源 在Linux主机端安装Samba包后,Samba包中已经包括了
smbclient、smbmount等的实用程序。 smbclient程序提供了一个类似FTP 的模式界面, 允许
用户共享Windows、Linux的资源,还可以用户列出服务器上的可用共享资源。smbmount类似
mount命令, 将Windows的共享目录安装到Linux的本地目录。下面列出这些命令的主要用法,
具体可以参见man文档。
1. smbclient -L hostname <-U username> 说明:列出指定主机的共享资源。
2. smbclient \\\\server\\共享名 <-U username> 说明:连接网络共享资源。其用法类似ftp。
3. smbmount \\\\server\\共享名 -c 'mount /mnt/smb' 说明:安装指定主机的共享名到本地
的目录 注意:分隔符为反斜杠。
2、Windows主机共享Linux主机的资源 在Windows端,通过浏览网络邻居,列出Linux主机的共
享资源,将某一共享 目录映射为一个网络驱动器,也可以共享Linux的打印机。
四、问题:
Samba的用户认证.用户认证表示允许Samba限制访问共享资源、 控制文件和目录的读写权限。
Samba支持三种不同的验证用户访问共享资源的机制。它由Samba文件中的关键字security控
制,分为共享安全(share)、用户安全(user)、服务器安全(server)三种。其中share模式是
最早的安全模式,提供的安全权限最低,也是Samba的缺省模式。user模式是当用户连接
Samba服务器上的共享资源时, Samba必须验证用户的用户名和密码。验证正确后,用户才能
获得相应的访问权限。 server模式是将用户认证由另一个SMB服务器来完成,往往是采用
Windows NT。 在采用share模式时,本人发现无法访问对应Linux用户的主目录,提示“必 须
提供密码才能连接: 资源\\Linux主机名\IPC$",可是无论提供什么口令,都无法访问共享资
源。通过查看有关文档(位于 /usr/doc/samba-2.0.3/docs/textdocs/Win95.txt文件),发现
是由于Windows98禁止plain text的口令认证,只需按照文档说明修改注册表即可,也可以利
用/usr/doc/samba-2.0.3/docs目录下 的Win98_PlainPassword.reg文件,导入注册表。 如果
出于安全因素考虑, 应该尽量避免采用share模式,而采用user模式, 必须为Samba用户设置
帐户,具体步骤如下:
1.建立Samba帐户,编辑帐户文件/etc/smbpasswd,删除不需要的帐户。
# cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd
# vi /etc/smbpasswd
2.利用smbpasswd命令建立帐户的口令,最好与/etc/passwd的帐户口令相同。
# smbpasswd Samba用户名
3.编辑/etc/smb.conf文件, 修改[global]段的security=user,encrypt passwords = yes。
4.重新启动SMB服务,再进行测试。
# /etc/rc.d/init.d/smb restart