Samba是用来实现SMB(Server Messages Block)协议的一种软件,是一套让Unix/Linux系统能够应用Microsoft网络通信协议的软件,它可以和运行Windows 98、Windows 2000等操作系统的计算机实现文件共享和打印机共享服务。
通过配置Samba服务器,可以提供Windows客户机来访问Linux系统上共享的资源,也能够在Linux上通过SMB协议访问Windows系统上的共享资源。
一般来说,用户习惯使用Linux计算机作为服务器,使用Windows计算机作为客户机。但是,现在有越来越多的计算机使用者不但使用Linux做服务器,也使用Linux来处理很多其它任务,那么就可能会需要访问其它Windows计算机上的资源。下面就详细介绍在红旗Linux下,与Windows机器互相发送短信的一种方法,并且阐述配置步骤和测试方法。
配置Samba
配置Samba的工作其实就是对配置文件smb.conf进行相应的设置。smb.conf关系着Samba服务器的权限设置,以及共享的目录、打印机和机器所属的工作组等各种细致的选项。
smb.conf文件最基本的三个特殊段是global(全局参数)、directory shares(目录共享)、printer shares(打印共享)。除了[global]段外,所有的段都可以看作是一个共享资源,段名是该共享资源的名字,而段里的参数就是共享资源的属性。[global]、[homes]和[printers]三个段是比较特殊的。smb.conf文件配置起来很复杂,而且内容很多,在这里只列出核心的配置:
[global]
netbios name = Redflag
workgroup = WORKGROUP
hosts allow = 192.168.100. 192.168.200. 127.
log file = /var/log/samba/log.%m
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
[homes]
comment = Home Directories
browseable = yes
writable = yes
至于其它的选项,可以根据用户的实际需要进行取舍。当配置好Samba并启动后,就可以在Windows下访问Linux机器上的资源。操作过程如下:
1.在Windows 2000计算机的桌面上单击“网上邻居”,进入Workgroup组,其成员如图1所示,找到Linux的主机Redfag。
2.单击“Redflag”,出现要求输入用户名和密码的画面。
3.如果输入用户名和密码正确,则可以看到Redflag机上共享的资源,如图2所示。
接下来,用户可以按照自己的需要进行相应的操作。
图1 Windows 2000的计算机Workgroup组成员
图2 Redflag机上共享的资源
实现Linux与Windows互发短信
为了处理winpopup的信息,Samba提供了“message command”全局参数,它定义了信息到来时Samba采取的措施,例如在smb.conf的[global]段加入下面两行:
message command = bash "kedit %s; rm %s" &
message command = /bin/mail -s 'message
from %f on %m ' root
上面命令表明必须立即返回,所以其后加上了“&”符号;%s表示存放信息的文件名;%f表示发送信息的用户;%m表示客户机的NetBIOS名字。
配置完成后,重新启动Samba,接下来就可以进行测试。
1.从Linux机向Windows及发送短消息
测试使用的命令是smbclient,操作如下:
[root@redflag /root]# echo "This is a test!" | smbclient -M lgm
上面代码中,lgm表示的是Windows的NetBIOS名字。
(1)在Windows 98下,首先要运行winpopup.exe程序,接下来才能接收到短消息,如图3所示。
(2)在Windows 2000下可以直接接收短消息,如图4所示。
图3 Windows 98接收到Linux发送的信息
图4 Windows 2000接收到Linux发送的信息
2.从Windows向Linux发送短信息
在Windows 98下,向Linux发送短信息时仍然要用winpopup.exe程序,但是对象应该是Linux下的NetBIOS名称才可以,如图5所示。
图5 在Windows 98下回复Linux短信
图6 Windows 2000下用net send命令向Linux发送短信息
在Windows 2000下,用net send命令向Linux发送短信息,如图6所示。
3.在Linux下通过mail命令查看收到的信息
[root@redflag /root]#mail
Mail version 8.1 6/6/93.
Type ? for help.
"/var/spool/mail/root": 1 message 1 new
N
1 nobody@localhost.loc
Sat Apr
5 15:56
13/442
"message from LGM on l"
& 1
Message 1:
From nobody
Sat Apr
5 15:56:14 2003
Date: Sat, 5 Apr 2003 15:56:14 -0500
From: Nobody
To: root@localhost.localdomain
Subject: message from LGM on lgm
This is a test!
Windows
Samba的功能非常强大,是目前应用最为广泛的网络服务之一,本文只介绍了在红旗Linux下与Windows互相发送短信的一种方法。