SMB(Server Message Block)协议是一种广泛应用于局域网中的文件和打印共享协议,它建立在NetBIOS协议之上,并且通常使用TCP的138和139端口进行通信。微软在其早期的Lan Manager和Windows服务器系统中采用了SMB协议,允许不同计算机之间共享打印机和文件资源。随着Unix/Linux系统的普及,为了实现Windows和这些非Windows系统的集成,Samba应运而生。
Samba是一个开源项目,它的主要目标是提供对SMB/CIFS协议的支持,使得Linux和Unix系统可以无缝地与Windows网络环境交互。Samba实现了NetBIOS协议上的SMB服务,让Linux服务器能在Windows的"网络邻居"中被发现。通过Samba,Windows客户端无需修改配置,就能直接访问Unix/Linux服务器上的共享资源。
Samba包含两个主要的守护进程:smbd和nmbd。smbd监听139端口,负责设置共享目录和打印服务;nmbd则监听137和138端口,处理NetBIOS相关的组管理和名称解析工作。在Fedora 9及其后续版本中,出于安全考虑,这两个服务被独立管理,需要分别启动。
安装Samba软件包通常可以通过RPM或yum工具完成。在Fedora系统中,可以使用如下的RPM命令来安装:
```bash
# rpm -ivh samba-*.rpm samba-winbind-*.rpm samba-common-*.rpm samba-client-*.rpm system-config-samba-*.rpm
```
或者使用yum命令一次性安装所有依赖:
```bash
# yum install samba*
```
启动Samba服务可以执行以下命令:
```bash
# service smb start
# service nmb start
```
或者通过`chkconfig`设置开机启动级别。确认服务是否正常启动,可以使用`pstree`和`grep`命令:
```bash
# pstree | grep mb
```
Samba的配置文件是`smb.conf`,位于`/etc/samba/`目录下。配置文件中包含了共享设置、安全级别、工作组信息、日志记录等多个选项。Samba的安全级别有四种:share、user、server(不常用)和domain(不常用)。对于普通用户,通常选择"user"级别,要求用户提供用户名和密码进行身份验证。若希望任何用户无需认证即可访问,可以设置为"share"级别。例如,通过编辑`smb.conf`更改安全级别:
```bash
# vi /etc/samba/smb.conf
```
确保`security`参数设置为`user`,并根据需要配置其他选项,如工作组(`workgroup`)、服务器标识(`server string`)、NetBIOS名称(`netbios name`)、日志文件路径(`log file`)和最大日志大小(`max log size`)等。
配置完成后,重启Samba服务以应用新的设置:
```bash
# service smb restart
# service nmb restart
```
Samba是连接Windows和Unix/Linux系统的重要桥梁,通过合理配置,可以实现跨平台的文件和打印资源共享,极大地提高了工作效率。了解和掌握Samba的配置与使用,对于维护多平台网络环境的IT管理员来说至关重要。