感谢支持
我们一直在努力

Samba文件共享服务

简介:

在Windows网络环境中,主机之间进行文件和打印机共享是通过微软自己的SMB(Server Message Block,服务消息块)/CIFS(Common Internet File System,通用互联网文件系统)私有网络协议实现的.

Samba是著名的开源软件项目之一,它在Linux/UNIX系统中实现了微软的SMB/CIFS网络协议,使得跨平台的文件共享变得更加容易.

更多关于Samba的详细信息,或者下载地址请点这里

相关阅读:

Samba文件共享-实现异构通信 http://www.linuxidc.com/Linux/2013-03/81152.htm

VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍 http://www.linuxidc.com/Linux/2013-06/85445.htm

1.Samba软件的组成:

  • Samba:服务端软件

  • Samba-client:客户端软件

  • Samba-common:用于提供服务端和客户端程序的公共组件

  • Samba-swat:用于提供Web接口的图形管理程序(远程装Samba时用到)

安装samba包:

2.Samba服务的程序组件:

  • Samba服务器提供smbd 、nmbd两个服务程序,用来完成不同的功能.

  • Smbd: 负责为客户机提供服务器中共享资源(目录和文件等)的访问;

  • Nmbd:负责提供基于 NetBIOS协议的主机名称解析,以便为windows网络中的主机进行查询服务

启动samba服务: /etc/rc.d/init.d/smb start 或者 service smb start

启动smb服务后,会自动加载Smbdnmbd两个程序组件.使用netstat命令可以验证服务进程状态:

Smbd程序负责监听TCP协议的139端口(SMB协议),445端口(CIFS协议);

Nmbd服务程序负责监听UDP协议的137-138端口(NetBIOS协议)

3.主配置文件smb.conf

Samba服务的配置文件: /etc/samba目录中

主配置文件: smb.conf

(”#”号开始的行表示注释性的文字; ”;”开始的行表示配置样例)

Eg:使用grep命令过滤出smb.conf文件中的有效配置.

Grep -v “#” /etc/samba/smb.conf | grep -v “^;” | grep -v “^$”

注解:

[ global ]全局设置:这部分配置项的内容对整个samba服务器都有效.

[ homes ]宿主目录共享设置:设置linux用户的默认共享,对应用户的宿主目录;当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主文件夹中

[ printers ]打印机共享设置:如果需要打印机设备,可以在这部分进行设置

Samba服务器的常见配置项及含义说明:

workgroup

所在工作组名称

server string

服务器描述信息

security

安全级别,可用值如下:shareuserserverdomain

log file

日志文件位置,“%m”变量表示客户机地址

max log size

日志文件的最大容量,单位为KB

passwd backend

设置共享账户文件的类型

comment

对共享目录的注释、说明信息

path

共享目录在服务器中对应的实际路径

browseable

该共享目录在“网上邻居”中是否可见

guest ok

是否允许所有人访问,等效于“public”

writable

是否可写,与read only的作用相反

若要兼容旧版的Samba密码文件,应设置passwd backend = smbpasswd

Samba服务器提供了一个配置文件检查工具——testparm程序,使用testparm工具可以对smb.conf配置文件的正确性进行检查,如果发现有错误将会进行提醒:

Eg:当配置文件中的public共享设置未指定文件夹路径时会报错:

构建文件共享服务器:

可匿名访问的共享:

  • 可匿名访问的共享适用于公开的资源分享,一般只建议提供只读访问。

  • 修改主配置文件以便支持匿名共享文件夹:

  • 将默认的安全级别修改为share ;添加一段共享目录配置。

Eg:将本地挂载光盘目录/media/cdrom发布为共享文件夹,共享名为rhel5

从客户机访问并验证

需用户验证的共享:

步骤:

将默认的安全级别修改为share;添加共享目录配置,指定用户权限;需先创建授权的共享账户

建立Samba用户数据库

默认数据库文件位于:/etc/samba/passdb.tdb

Pdbedit -a -u wzx添加共享用户(-a:添加-u:指定用户名称)

Pdbedit -L 列出所有的samba共享用户

Pdbedit -x -u 删除samba用户

设置用户访问授权:

新建测试目录:

修改smb.conf配置文件,添加名为tools的共享目录:

重新加载smb.conf文件,或重启smb服务:

确定目录访问授权(将文件夹的权限设置为777以便u1用户能够读取、写入):

设置上传文件和目录的默认权限:

用户映射及访问地址限制:

共享账号映射(别名):

Samba共享账号的映射文件默认位于/etc/samba/smbusers

格式:共享用户名 = 别名1 别名2 别名3 …

该文件中默认已经添加了两条兼容windows客户机的别名映射:

注解:

  • 当客户机以用户administratoradmin访问共享时,samba服务器将视为本机的共享用户root

  • 当用户guestpcguest等被映射为共享用户nobody

Eg:为现有的samba共享用户u1指定两个别名hellowelcome

设置好别名记录后,修改修改主配置文件后重启服务以便正常启用账号映射功能:

访问地址限制:

  • 一般用在全局配置[global]部分

  • hosts allow配置项:仅允许特定的客户机

  • hosts deny配置项:仅拒绝特定的客户机

  • 客户机地址表示形式:以空格分隔多个地址

主机名或IP地址,例如:192.168.168.11 或者prtsvr

网络段地址(省去主机部分),例如:173.17. 或者173.17.0.0/255.255.0.0

访问共享文件夹:

使用smbclient 访问共享文件夹:

查询目标主机的共享资源列表:

登录并访问共享文件夹

格式: //主机地址/共享名

Eg:连接到samba服务器192.168.10.1中名为rhel的匿名共享目录:

Eg:使用共享用户u1(或别名hellowelcome)访问tools共享:

Ls :用于列表目录pwd :查看当前路径

Get mget:用于下载文件put mput用于上传文件

?或help :查看各种交换命令的在线帮助信息

 

使用mount 挂载共享文件夹

格式:通过”//主机地址/共享名指定共享文件夹的位置,并指定本地的挂载点的目录

Eg:将samba服务器192.168.10.1中的tools共享目录挂载到本地的/media/smbdir/文件夹以便共享用户u1进行验证:

Samba服务就此成功!

赞(0) 打赏
转载请注明出处:服务器评测 » Samba文件共享服务
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏