29.10. Microsoft® Windows®客户端档案与打印服务(Samba)

Samba是热门的开放源码软件套件,使用SMB/CIFS通信协定提供档案与打印服务,此通信协定内置于Microsoft® Windows®系统,在非Microsoft® Windows®的系统可透过安装Samba客户端程序库来支持此协定。此通信协定让客户端可以存取共享的数据与打印机,这些共享的资源可挂载到一个本机的磁碟机,而共享的打印机则可以当做本机的打印机使用。

在FreeBSD上,可以使用net/samba410 Port或 package 来安装Samba客户端程序库,这个客户端提供了让FreeBSD系统能存取SMB/CIFSMicrosoft® Windows®网络中共享的资源。

FreeBSD系统也可以透过安装net/samba46 Port或套件来设定成Samba服务器,这让管理者可以在FreeBSD系统上建立SMB/CIFS的共享资源,让执行Microsoft® Windows®或Samba客户端程序库的客户端能够存取。

29.10.1. 服务器设定

Samba的设定位于/usr/local/etc/smb4.conf,必须先设定这个档案才可使用Samba

要共享目录与打印机给在工作群组中的Windows®客户端的简易smb4.conf示例如下。对于涉及LDAP或Active Directory的复杂安装,可使用samba-tool(8)来建立初始的smb4.conf

[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = ExampleMachine
wins support = Yes
security = user
passdb backend = tdbsam

# Example: share /usr/src accessible only to 'developer' user
[src]
path = /usr/src
valid users = developer
writable  = yes
browsable = yes
read only = no
guest ok = no
public = no
create mask = 0666
directory mask = 0755

29.10.1.1. 全局设定

/usr/local/etc/smb4.conf中加入用来描述网络环境的设定有:

工作组

要提供的工作群组名称。

netbios 名字

Samba服务器已知的NetBIOS名称,预设为主机的DNS名称第一节。

server string

会显示于net view输出结果以及其他会寻找服务器描述文字并显示的网络工具的文字。

wins support

不论Samba是否要作为WINS服务器,请不要在网路上开启超过一台服务器的WINS功能。

29.10.1.2. 安全性设定

/usr/local/etc/smb4.conf中最重要的设定便是安全性模式以及后端密码格式,以下项目管控的选项有:

安全性

最常见的设定为security = share以及security = user,若客户端使用的使用者名称与在FreeBSD主机上使用的使用者名称相同,则应该使用使用者(user)层级的安全性,这是预设的安全性原则且它会要求客户端在存取共享资源前先登入。

安全性为共享(share)层级时,客户端存取共享资源不需要先使用有效的使用者名称与密码登入服务器,在是在旧版Samba所采用的预设安全性模式。

passdb 后端

Samba支持数种不同的后端认证模式,客户端可以使用LDAP,NIS+,SQL数据库或修改过的密码档来认证,建议的认证方式是tdbsam,适用于简易的网络环境且在此处说明,对于较大或更复杂的网络则较建议使用ldapsam,而 smbpasswd是旧版的预设值,现在已废弃不使用。

29.10.1.3. Samba使用者

FreeBSD使用者帐号必须对应SambaSAMAccount数据库,才能让Windows®客户端存取共享资源,要对应既有的FreeBSD使用者帐号可使用pdbedit(8)

# pdbedit -a username

本节只会提到一些最常用的设定,请参考官方Samba HOWTO来取得有关可用设定选项的额外信息。

29.10.2. 启动Samba

要在开机时启动Samba,可加入下行到/etc/rc.conf

samba_server_enable="YES"

要立即启动Samba

# service samba_server start
Performing sanity check on Samba configuration: OK
Starting nmbd.
Starting smbd.

Samba由三个独立的Daemon所组成,nmbdsmbd daemon可透过samba_enable来启动,若同时也需要winbind名称解析服务则需額外设定:

winbindd_enable="YES"

Samba可以随时停止,要停止可输入:

# service samba_server stop

Samba是一套拥有能整合Microsoft® Windows®网络功能的复杂软件套件,除了在此处说明的基础设定,要取得更多的功能信息,请参考https://www.samba.org

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.