SAMBA简介
SAMBA是什么
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。
SAMBA的功能
- 分享文件和打印机功能
- 提供认证功能,以不同的身份登录samba服务器访问不同的文件
- Windows网络上的主机名称解析
- 进行装置的分享
SAMBA的结构
- samba server端由smbd,Winbid进程nss_ldap进程组成,并且使用nmbd进程提供NetBIOS通信协议,进行域名解析。smbd是smb的服务进程。
- samba client由CIFS Server,Active Director和S而vices For UNIX组成。
- smaba监听在137/udp,138/udp,139/tcp,445/tcp端口上。
NetBIOS简介
NetBIOS为网络基本输入输出系统(英语:Network Basic Input/Output System)的缩写,它提供了OSI模型中的会话层服务,让在不同电脑上运行的不同程序,可以在局域网中,互相连接,以及分享数据。严格来说,NetBIOS不是一种网络协议,而是应用程序接口(API)。较古老的操作系统,使用IEEE 802.2与IPX/SPX协议,可以使用NetBIOS Frames协议或NetBIOS over IPX/SPX协议来运作。现代操作系统,多数都使用TCP/IP协议,则可通过NetBIOS over TCP/IP协议来相互通信。
SAMBA与NetBIOS的关系
SAMBA这个文件系统架构是在NetBIOS这个通信协议上开发出来,由于早期NetBIOS是无法跨路由的,只能在局域网内进行传输,后来研发出 NetBIOS over TCP/IP技术,试SAMBA应用于以太网。
SAMBA Server安装及配置
SAMBA Server的安装
下载:
[root@Clone1 ~]# wget https://download.samba.org/pub/samba/stable/samba-4.6.6.tar.gz
安装依赖:
[root@Clone1 ~]# yum install python-devel gnutls-devel gnutls libacl-devel openldap-devel
安装:
[root@Clone1 ~]# tar -xzf samba-4.6.6.tar.gz
[root@Clone1 ~]# cd samba-4.6.6
[root@Clone1 samba-4.6.6]# make && make install
SAMBA配置文件详解
[global]
# ------------- Network Related Options -----------------
#
workgroup = MYGROUP //主机群名称,主机群里的主机都相同
server string = Samba Server Version %v //
; netbios name = MYSERVER //netbios名称,每个主机的都不相同
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13. //主机白名单
# ---------------- Logging Options ---------------------
log file = /var/log/samba/log.%m //登录日志PATH
max log size = 50 //日志文件大小
# ------------- Standalone Server Options -----------------
security = user|shar|domain //设置分享权限,shar:资料不需要密码,大家可以分享文件。user:使用samba本身的密码资料
passdb backend = tdbsam //资料库格式。默认为tdsam
[share_name]
comment = All Printers //说明
path = /var/spool/samba //分享路径
browseable = no //是否所有使用者都能看到这个项目
guest ok = no
writable = no //是否进行写操作
printable = yes //是否显示表格
write list=user1,user2 或+group //可写用户表单
public=yes //不属于该用户的,是否能够显示出来的
read only=yes //只读
create mode = 0664 //建立文件权限
directory mode = 0775 //建立目录的权限
配置文件的内置变量
%m:Client端NetBIOS主机名
%M:Client端Internet主机名,即HOSTNAME。
%L:SAMBA主机的NetBIOS主机名
%H:使用者的家目录
%U:目前登录的使用者的使用者名称
%g:登入的使用者的群组名称
%h:SAMBA主机名
%I:Client IP
%T:日期
测试
无用户认证测试
服务器端配置:
配置文件:
检测配置文件
启动服务:
Linux客户端测试:
检查服务器上的共享:
Windows客户端测试:
访问:http://jingyan.baidu.com/article/b87fe19e63458052183568e3.html
用户认证测试
服务器端配置:
samba server配置文件
设置账号和密码:
[root@Clone1 /]# useradd -G users smb1
[root@Clone1 /]# useradd -G users smb2
[root@Clone1 /]# passwd smb1
更改用户 smb1 的密码 。
新的 密码:1234
重新输入新的 密码:1234
passwd: 所有的身份验证令牌已经成功更新。
[root@Clone1 /]# passwd smb2
更改用户 smb2 的密码 。
新的 密码:1234
重新输入新的 密码:1234
passwd: 所有的身份验证令牌已经成功更新。
[root@Clone1 /]# smbpasswd -a smb1
New SMB password:7890
Retype new SMB password:7890
Added user smb1.
[root@Clone1 /]# smbpasswd -a smb2
New SMB password:7890
Retype new SMB password:7890
Added user smb2.
注:smbpasswd命令给系统用户设置smb的密码,-a参数添加用户
Linux端测试:
Windows端测试: