Linux Samba服务器配置与管理

  • 格式:doc
  • 大小:4.37 MB
  • 文档页数:14

1

摘要

Samba是SMB的一种实现方法,主要用来实现Linux系统的文件和打印服务。Linux用户通过配置使用Samba服务器可以实现与Windows用户的资源共享。守护进程smbd和nmbd是Samba的核心,在全部时间内运行。

关键字:Linux,通信,共享

1 引言

某企业局域网中存在大量的Linux主机和Windows主机,Linux主机之间可以使用NFS服务器(192.168.1.2)进行资源的共享。

现在公司要进行一个项目开发,需要Linux主机和Windows主机的用户一起完成,因此需要架设一台文件服务器来实现不同操作系统类型的终端之间的资源共享。

局域网的IP地址为192.168.1.2~192.168.1.150,新架设的文件服务器地址是192.168.1.3。该公司局域网如下:

图1.1 公司局域网拓扑

2 分析解决问题

完成本项目需要解决的问题:

1、选择什么样的服务器可以实现Linux与Windows主机之间的资源共享?

2、在Linux系统中如何运行Samba服务器?

3、怎样实现Samba服务器的配置? 2 4、怎样使用Windows客户端、Linux客户端与Samba服务器的共享资源?

2.1 SMB协议& Samba

2.1.1 SMB协议

SMB(Server Message Block)协议是用来在微软的Windows操作系统之间共享文件和打印机的一种协议。它是Microsoft和Intel在1987年制定的协议,主要是作为Microsoft网络的通信协议,而Samba则是将SMB协议搬到Unix上来使用。SMB是在会话层和表示层以及小部分的应用层的协议,SMB使用了NetBIOS的应用层程序接口API。它是一个开放性协议,允许协议扩展,大约有65个最上层的作业,每个作业都超过120个函数。

2.1.2 Samba工作原理

Samba是用来实现SMB协议的一种软件,由澳大利亚的Andew Tridgell开发,是一套让UNIX系统能够应用Microsoft网络通讯协议的软件。

Samba包含两个核心守护进程:nmbd和smbd。 nmbd监听137和138UDP端口,smbd监听139TCP端口。

nmbd守护进程使其他计算机可以浏览Linux服务器。

smbd守护进程在SMB服务请求到达时对它们进行处理,并且为被使用或共享的资源进行协调。

smbd和nmbd使用的配置信息全部保存在/etc/samba/smb.conf文件中。

2.1.3 Samba的主要功能

(1)提供Windows风格的文件和打印机共享。

(2)解析NetBIOS名字。

(3)提供SMB客户功能。

(4)提供一个命令行工具,利用该工具可以有限制地支持Windows的某些管理功能。

(5)支持SWAT(Samba Web Administration Tool)和SSL(Secure Socket Layer) 3 2.2 Samba服务的安装、启动与停止

(1) Samba服务所需要的软件包

samba-3.0.33-3.7.el5.i386.rpm

(Samba服务端软件)

samba-client-3.0.33-3.7.el5.i386.rpm

(Samba客户端软件)

samba-common-3.0.33-3.7.el5.i386.rpm

(Samba服务器和客户端均需要的文件)

samba-swat

(Samba的Web配置工具)

(2) Samba服务的安装:

(3) Samba服务的启动:

service smb start

(4) Samba服务的停止:

service smb stop

2.3 Samba服务的配置文件

Samba服务的配置文件主要包括:

主配置文件/etc/samba/smb.conf

密码文件/etc/samba/smbpasswd

用户映射文件/etc/samba/smbusers

日志文件/var/log/samba/ 4 2.3.1主配置文件smb.conf

Samba服务在启动时会读取smb.conf文件中的内容,以决定如何启动、提供服务以及相应的权限设置、共享目录、打印机和机器所属的工作组等各项详细的选项。

smb.conf文件分为:全局配置(Global Settings)和共享定义(Share

Definitions)两个大的部分。

全局配置部分定义的参数用于定义整个Samba服务器的总体特性。

共享定义部分用于定义文件及打印共享。在共享定义部分又分为很多个小节,每一个节定义一个共享文件或共享打印服务。

5

2.3.2 全局配置:

workgroup = WORKGROUP:设置Samba服务器所属的工作组或域名。

server string = Samba Server:指定Samba服务器的说明信息。

hosts allow = 192.168.1.1 192.168.2. 127:设置可以访问Samba服务器的主机、子网或域。

printcap name = /etc/printcap:设置加载的打印服务配置文件。

load printers = yes:设置是否允许加载打印配置文件中的所有打印机。

printing = cups:定义打印系统。

guest account = pcguest:设置默认的匿名帐号。

log file = /var/log/samba/%m.log:指定日志文件的存放位置。

max log size = 50:指定日志文件的最大存储容量。

security = user:设置Samba服务器的安全级别,取值按照安全性由低到高为:share、 user、server和domain。

share:共享级别,用户不需帐户及密码即可访问Samba服务器的共享资源。

user:用户只有通过了Samba服务器的身份验证之后才能访问服务资源(是Samba服务器的默认安全级别)。

server:和user安全级别类似,但是检查帐户和密码的工作指定由另一台服务器完成。

domain:Samba服务器加入到Windows域后,Samba服务的用户验证信息交由域控制器负责,则使用该安全级别。同时也需要设置身份验证服务器。

password server = :设置提供身份验证的服务器。 6 encryptpasswords =yes:设置身份验证中传输的密码是否加密。

smb passwd file = /etc/samba/smbpasswd:设置提供用户身份验证的密码文件。

username map = /etc/samba/smbusers:指定用户映射文件。

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192:提高服务器的执行效率。

interfaces = 192.168.12.2/24 192.168.13.2/24:指定Samba服务器使用的网络接口。

local master = no:设置是否允许nmbd守护进程成为局域网中的主浏览器。

os level = 33:设置Samba服务器参加主浏览器选举的优先级。

domain master = yes:将Samba服务器定义为域的主浏览器。

domain logons = yes:如果想使Samba服务器成为Windows 95等工作站的登陆服务器,使用此选项。

wins support = yes:设置是否使Samba服务器成为网络中的WINS服务器。

wins proxy = yes:设置Samba服务器是否成为WINS代理。

dns proxy = no:设置Samba服务器是否通过DNS的nslookup解析主机的

2.3.3共享服务的定义

(3)[public]节

7

在smb.conf文件的共享定义部分除了上面的内容之外,还有其他的很多用户自定义的节。除了homes节之外,在Windows客户端看到的Samba共享名称即为节的名称。常见的用于定义共享资源的参数如下表所示。

2.3.4 Samba服务的密码文件

位置:/etc/samba/smbpasswd。

该文件中存储的密码是加密的,无法用Vi编辑器进行编辑。默认情况下该文件并不存在,可以使用以下两种方法创建:

(1)使用smbpasswd命令添加单个的Samba帐户。

Smbpasswd命令的格式为:

smbpasswd [参数选项] 帐户名称

常见参数选项有:

-a:向smbpasswd文件中添加帐户,该帐户必须存在于/etc/passwd文件中。

-x:从smbpasswd文件中删除帐户。

-d:禁用某个Samba帐户,但并不将其删除。

-e:恢复某个被禁用的Samba帐户。

-n:该选项将帐户的口令设置为空。 8 -r remote-machine-name:该选项允许用户指定远程主机。

-U username:和“-r” 连用,指定欲修改口令的帐户。

示例:

将user1用户添加到smbpasswd文件中,并显示smbpasswd文件的内容

注意:在使用smbpasswd命令添加Samba账户时,该系统账户必须存在,如果不存在,可以使用useradd命令添加。

2. 使用mksmbpasswd.sh脚本成批添加Samba帐户。

2.3.5 Samba服务的用户映射文件

/etc/samba/smbusers。

用户映射通常是在Windows和Linux主机之间进行。两个系统拥有不同的用户帐号,用户映射就是将不同的用户映射成为一个用户。做了映射之后的Windows帐号,在使用Samba服务器上的共享资源时,就可以直接使用Windows帐号进行访问。

用户映射文件每一行的格式如下:

Linux帐户 = 要映射的Windows帐户列表

(注意:Windows中的各用户之间用空格分隔。)

在Linux中的user1用户和Windows中的mlx和jyg两个用户之间建立映射。