- 论坛徽章:
- 0
|
在 UNIX或者LINUX 服务器上安装 samba 服务可以实现与 Windows 系统的文件共享和打印机共享。 有关 samba的资料网上很多,下面是我从网上找的一些关于samba的介绍:
Samba 组织的目标 —— Opening Windows To A Wider World 。他们之间的数据传输使用 SMB(Service Message Block) 协议 . 这是一个在传输层之上的协议 , 所以他可以支持很多不同异构系统的网络互联 ( 比如 ,Linux,Solaris,Windows 等 ),Samba 之所以能够工作 , 因为 SMB 协议模仿了 Windows 内核的文件和打印共享协议。微软已经将SMB改名为公共因特网文件系统(CIFS,Common Internet File System ),并打算把它设计为Internet的标准协议。这在一定程度上是由于它想与最初的基于NetBIOS的SMB保持一定的距离。NetBIOS是Windows 网络的一个伟大的工具,Microsoft使用NetBIOS实现了一个网络文件/打印服务系统,但是为LAN设计的它却注定了不能路由。 Samba执行了SMB/CIFS的一个版本,这个版本在很大程度上与大多数的Windows版本兼容。但是,无论是从Windows连接到Linux还是从Linux连接到Windows机器,Samba系统对于实现文件和打印服务来说总是很稳定的。我们可以通过Windows的网络邻居来轻松访问安装了Samba的UNIX/LINUX服务器。(更多的文档见
http://www.samba.org/
)。
一、 安装 samba
1、在安装samba之前确实系统已经安装了如下软件包:
libiconv-1.8-sol9-sparc-local.gz、 ncurses-5.4-sol9-sparc-local.gz
readline-5.0-sol9-sparc-local.gz、 libgcc-3.3-sol9-sparc-local.gz、 popt-1.7-sol9-sparc-local.gz
可以到如下网站下载上面的软件包(包括samba安装包):
http://ftp.iasi.roedu.net/
mirrors/ftp.sunfreeware.com/pub/freeware/sparc/
2、 下载 samba for Solaris 的安装软件包: samba-3.0.10-sol9-sparc-local.gz
3、 解压并安装samba软件包:
#gunzip samba-3.0.10-sol8-sparc-local.gz
#pkgadd – d samba-3.0.10-sol8-sparc-local
安装完毕后,到默认安装目录/usr/local下可以看到安装的软件包samba目录。
二、 配置 samba
1、创建 samba 配置文件
samba安装完成后 需要手工在 samba安装 目录 lib 目录下创建文件名为 smb.conf 的配置文件。安装程序不会创建该配置文件。
1.1、smb.conf文件的格式
smb.conf文件的格式有多个段构成,每段由段名开始,段名放在方括号中,下面是smb.conf文件的例子:
# cat /usr/local/samba/lib/smb.conf
# Samba config file created
# Date: 2006/03/25
# HuYingguang
[global]
workgroup = WORKFLOW
server string = y25663-wf01 5.9
log file = /usr/local/samba/var/log.%m
max log size = 50
security = user
smb passwd file = /usr/local/samba/smbpasswd
unix charset =GBK
[emip]
comment = Network Logon Service
path = /export/home2/emip
writeable = yes
browseable = yes
guest ok = yes
[global] 段是全局变量 , 它设置了要加入的工作组 ( 这里是 WORKFLOW),NetBIOS 名 , 安全参数 security 等参数 。 除了 [global] 段外 , 所有的段都可以看作是一个共享资源段可以有多组 , 段名是该共享资源的名字 , 而段里的参数就是共享资源的属性。通过设置它的参数可以设置共享目录路径和访问控制权限等。
1.2、下面看看一些重要 参数 的说明:
全局段参数 [global]
首要配置 : 无论是使用 swat, 还是直接编辑 /usr/local/etc/smb.conf, 通常首先要配置的 Samba 选项都是 :
workgroup 设置 sam ba服务器所要加入的NT 域名或工作组的名称, 其他计算机将通过这些名字来找到服务器。另外如果在设置了 security = domain, 则 workgroup 可以指定域名。
netbios name 指定 samba 的 NetBIOS 名 ,即 设置出现在“网上邻居”中的主机名。默认情况下,则使用真正的主机名。
server string 设置服务器主机的说明信息,这个选项用于设置通过 net view 命令,以及某些其他网络工具可以查看到的关于服务器的说明性文字。缺省为 samba %v, 即 samba 尾随它的版本号
安全配置: 在 /usr/local/etc/smb.conf 中的两个最重要的配置,是选定的安全模型, 以及客户机上用户的口令存放后端:
security 设置 Samba 服务器的安全等级 , 默认 为user 。
最常见的选项形式是 security = share 和 security = user 。 如果您的客户机使用用户名, 并且这些用户名与您的 FreeBSD 机器一致, 一般应选择用户级 (user) 安全。 这是默认的安全策略,它要求客户机首先登录, 然后才能访问共享的资源。如果采用共享级 (share) 安全, 则客户机不需要用有效的用户名和口令登录服务器,就能够连接共享的资源。
security 共有四种选项设置:
share 用户不需要帐号及密码可以登陆Samba服务器。
user 由提供服务的Samba服务器检查用户帐号及密码。
server 检查帐号及密码的工作可指定另一台Samba服务器负责。
domain 需要指定一台Windows NT/2000/XP服务器(通常为域控制器),以验证用户输入的帐号及密码。
passdb backend 设置S amba采用验证后端模型。 可以通过 LDAP、 NIS+、 SQL 数据库, 或经过修改的口令文件, 来完成客户端的身份验证。 默认的验证模式是 smbpasswd。
其他参数:
password server 如果安全等级为“server”或“domain”,则使用此选项指定要验证密码的主机名。
encrypt passwords 设置当Samba客户端将帐号及密码传送到服务器端时,是否采取密码加密的方式,默认值为no。
smb passwd file 设置在Samba服务器上存放加密的密码文件的位置(Samba服务器与 Unix是 采用不同的密码文件)。
config file 设置此项可以用另一个配置文件覆盖缺省的配置文件,如果文件不存在,该项无效。这使得samba的配置更灵活,让一台Linux /Unix 服务器模拟多台不同配置的NT 服务器 。可以 让访问 samba 服务器的客户机使用 自己的配置文件 ,如: 先在 /usr/localsamba/lib目录 下为 host1 配置一个名为 smb.conf.host1 的文件 ,然后 在缺省的 smb.conf 里加这行 :config file = /usr/localsamba/lib/smb.conf.%m。这样host1登录samba服务器时就会使用smb.conf.host1配置文件,其他客户端则使用默认的配置文件。
d eadtime 设置该 参数用于切断一个不活动的连接。当一个没有打开任何文件的连接的不活动的时间超过datetime指定的的时间后,samba就自动切断这个连接。默认的值是零,samba不自动切断任何连接。
(值为整数,单位分钟)
hosts allow 设置允许什么样的 IP 地址的主机访问 Samba 服务器。默认的情况下 ,hosts allow 选项被注释 , 表示允许所有 IP 地址的主机访问。
guest account 设置当访问那些被设置了“guest ok=yes”参数的资源时所要使用的帐号名。所设的帐号必须是在/etc/passwd文件中存在的用户。
log file = /usr/local/samba/var/log.%m 设置日志文件。“% m”表示 Samba服务器为每一个连接的机器使用一个单独的日志文件,指定文件的位置,名称。Samba会自动将%m转换成连接主机的NetBios名。
max log size 指定日志文件的最大容量(KB),设置为0,表示没有限制。默认值为5000。
max disk size 设置能够共享的最大磁盘空间 ( MB ) ,默认值为0,表示不作任何限制。
max open file 设置同一客户端最多能打开文件的数目,默认值为10000个。
共享段参数 [emip]
comment 对共享的描述 , 可以是任意的字符串
path 设置共享资源的服务路径 , 用 %u %m 这样的宏来代替路径里的 unix 用户和客户机的 Netbios 名。例如 :path = /home/emip/%u这样 用户在连接到这共享时具体的路径会被他的用户名代替。
writeable设置指定的共享路径是否可以写,yes或no
browseable 指定共享是否可以浏览,默认是yes
available指定共享资源是否可用,默认是yes,设为no则关闭该资源的共享服务,用户无法连接到该资源上。
exec 和 postexec 、root preexec 和 root postexec 指定在用户与共享资源在连接和断开时在服务器上执行一个命令,这两对参数很有用,区别是root preexec 和root preexec 是以root的权限运行。
load printers 指定在samba启动时是否自动把printcap文件里的所有打印机加载,从而可以在浏览清单里看到所有的打印机,默认是yes
printable 指定用户能不能打印,默认是no,要让一个打印共享可以让用户使用,必须设为yes
print name 打印机名
printer drive r 打印机的驱动类型,这个参数可以让WINDOWS知道远程打印机上的类型,具体的值可以参考在WINDOWS里安装打印机出现选择打印机类型时的打印机类型。
admin users 参数用来赋予某用户为共享资源的管理员权限。缺省是admin users = no
valid users 指定共享资源的有效用户,即允许访问该资源的用户。多个用户用 逗号分隔
invalid users 指定不允许访问该共享资源的用户
max connections 指定一个服务的最大连接数目
在 samba安装目录:samba/doc/samba/examples/smb.conf.default文件中有详细的参数说明。
2、测试Samba配置文件格式是否正确
设置好smb.conf文件之后,执行下面的命令测试smb.conf的设置语法是否正确。
# cd /usr/local/samba/bin/testparm
Load smb config files from /usr/local/samba/lib/smb.conf
Processing section "[emip]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
出现如上信息表示smb.conf文 配置 正确。
3、设置samba密码文件
如果配置文件中 samba服务器的 安全等级设为:security = user,且passdb backend使用的是默认的 smbpasswd 后端, 则必须首先创建一个 /usr/local/private/smbpasswd 文件, 来允许 Samba 对客户进行身份验证。 如果您打算让所有的 UNIX? 用户帐号都能够从 Windows 客户机上登录, 可以使用下面的命令创建smbpasswd文件:
#cat /etc/passwd | mksmbpasswd.sh > / usr/local /samba/smbpasswd
此命令将未加密的/etc/passwd文件转换成加密的smbpasswd文件。
# chmod 500 /etc/samba
# chmod 600 /usr/local/samba/smbpasswd
创建完成之后再利用 smbpasswd 命令 , 设置 / usr/local/samba/smbpassword 文件中每个帐号所使用的密码。下面以 emip用户 为例。注意:此处设置的密码是 emip 要访问Samba服务器的密码,并非登录 Solaris 主机的密码,默认设置 ” UNIX password sync=YES ” , 则登录 Solaris 主机的密码将改变,与Samba服务器的密码一致。如果希望这两个密码不一致,则设置 ” UNIX password sync=NO ” )
root@smb_server root]# smbpasswd emip
New SMB password: 此处输入密码
Retype SMB password: 重新输入密码
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/35889/showart_295912.html |
|