samba服务主要是linux系统与windows系统之间建议一个桥梁,主要用于共享打印机和文件。
应用环境有:
文件和打印机共享:
文件和打印机共享是Samba的主要功能,SMB(SMB协议,server message block服务消息块)进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问。
身份验证和权限设置:
smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。
名称解析:
Samba通过nmbd服务可以搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS名解析为IP地址。
浏览服务:
局域网中,Samba服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源。
工作流程:
当客户端访问samba服务器时,信息通过SMB协议进行传输,步骤有4个:
1.协议协商
客户端访问samba服务器时,发送negprot指令数据包,告知目标计算机支持的SMB类型,samba服务器根据客户端的情况,选择最优的SMB类型,并作出回应。
2.建立连接
当SMB类型确认后,客户端会发送session setup指令数据包,提交帐号和密码,请求与samba服务器进行连接,通过验证,服务器会对session setup报文作出回应,并为用户分配唯一的UID,在客户端与服务器通信。
3.访问共享资源
客户端发送tree connect指令数据包,通知服务器需要访问的共享资源名,若设置允许,samba服务器会为每个客户端与共享资源链接分配TID
4. 断开链接
共享使用完毕后,客户端发送tree disconnect报文关闭共享
相关进程:
1.nmbd进程
进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
2.smbd进程
管理samba服务器上的共享资源,如打印机和文件,当访问服务器查找资源时,就是这个smbd进程来传输数据
注:可源码安装单一服务进程。
所需软件
samba-3.6.9-164.el6.x86_64.rpm samba服务主程序包
samba-client-3.6.9-164.el6.x86_64.rpm 客户端所需软件包
samba-common-3.6.9-164.el6.x86_64.rpm 服务器与客户端所需的工作和库文件
samba-winbind-clients-3.6.9-164.el6.x86_64.rpm 客户端工具
samba-winbind-3.6.9-164.el6.x86_64.rpm 映射服务和客户端工具(将windows下用户映射到linux下)
samba服务器的配置文件/etc/samba/smb.conf设置:
此配置文件包括以下几部分:
1)Global Settings 全局设置,对所有的共享文件都生效,其中包括:
Network Related Options:相关服务设置
workgroup 服务所在工作组
server string :samba服务器名称,v%表示版本号
netbios name:在网络邻居上的名字,不设置用原来的主机名
interfaces:网络接口
hosts allow:指定可以访问samba服务器的ip
Logging Options日志设置:
log file:日志文件目录及名称
max log size:日志大小KB
Standalone Server Options独立服务器设置安全等级:
security:安全级别有share(客户端登录samba服务器不需要密码) user(需要合法的帐号密码) server(需要帐号密码且需要一台samba来验证帐号密码) domain(samba服务器加入windows环境,由windows来验证帐号密码)
passdb backend:这个是用户后台的意思,有smbpasswd、tdbsam和ldapsam三种。
tdbsam是用数据库来记录用户数据,保存在/var/lib/samba/private/passdb.tdb下,默认选项。
smbpasswd是使用smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码。
ldapsam该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”。
Domain Members Options:指定一台samba来验证帐号密码设置
Domain Controller Options,Browser Control Options,Name Resolution,Printing Options,Filesystem Options。
2)Share Definitions共享服务定义
[xxx] xxx表示共享文件名,在windows中输入地址是 是这个名称哦。如\\192.168.1.1\xxx
;和#都是注释
comment:对共享的描述
path:共享路径
browseable:共享目录是否可见
guest ok :当为yes时,只要在域都可以使用打印机
writable:共享目录是否可写
readonly:共享目录是否只读
public:是否允许guest账户访问
read list:只读访问用户列表(是一个组)
write list :可写访问用户列表 (是一个组)
valid users:允许使用服务的列表(是一个组)
invalid users:不允许使用服务的列表(是一个组)
注:
1.在windows下登录samba服务器,提示需要帐号密码,使用smbpasswd -a 创建samba用户的密码。此用户必须是系统中真是存在的。
2.在windows下拷贝文件到共享目录中,提示无权限。共享目录需要是可写的权限,查看用户是否有权限写入目录中。
3.查看已连接的主机
[root@www ~]# smbstatus Samba version 3.6.9-164.el6 PID Username Group Machine -------------------------------------------------------------------Service pid machine Connected at ------------------------------------------------------- IPC$ 1827 192.168.1**.1 Tue Oct 16 08:29:13 2018 No locked files [root@www ~]#
4.若windows下登录samba慢。需要查看/etc/sysconfig/network 与 /etc/hosts是否一致。需重启
5.查看DNS。
6.我的配置文件内容是
[global] workgroup = samba server string = wori log file = /var/log/samba/samba.log max log size = 100 security = user passdb backend = tdbsam [data] comment = test samba path = /data/test browseable = yes writable = yes readonly = no