samba简介
samba服务器可以使用户在不同的操作系统之间进行文件共享。samba服务器提供了在windows环境下共享linux中用户目录的一个工具。在linux中安装samba后,windows用户只需要进行简单的登陆,就可以利用资源管理器直接操作,linux的目录做的驱动器。
SMB协议
windows采用TCP/IP作为底层协议,发送NetBIOS请求,而在NetBIOS的上层,采用了SMB[(Server Message Block)服务器消息块]作为接口,实现windows的文件与打印等资源的共享
SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(Common Internet file System),并且加入了许多新的特色。
SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445.
SMB工作原理
(1)协议协商:先在客户端发送一个SMB negprot请求数据包,列出它支持的所有SMB协议版本。服务器收到请求信息后,会根据客户端的情况,选择最优版本回应。
(2)建立连接:确定协议后,客户端会向服务器发送一个用户或共享的认证,这个过程是通过发送session setup请求数据包实现的。客户端发送一对用户名和密码或者是一次简单密码到服务器,然后服务器会回复一个session setup应答数据来允许或拒绝本次连接。
(3)访问共享资源:当客户端和服务器完成协商和连接认证后,它会发送tree connect数据包并列出它想访问的网络资源的名字,然后服务器又回它一个tree connect的应当数据包表示允许或拒绝。如果设置允许,samba就会为每个客户端与共享资源连接分配TID,客户端就能访问需要的共享资源。
(4)断开连接:共享完毕后,客户端会向服务器发送tree disconnect报文,关闭共享,与服务器断开连接 PS:(交往之初费尽心思,分手倒是挺果断的,渣男协议!)
samba功能
(1)文件和打印机共享:将文件和打印机发布到网络中,供用户访问。
(2)身份验证和权限设置:通过smdb进程实现身份验证和权限设置,也可以通过加密方式保护共享的文件和打印机。
(3)名称解析:通过nmbd进程搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS名解析成IP地址。
(4)浏览服务:在局域网里,samba作为本地文件主浏览服务器,可以保存可用资源列表。还可以给客户端访问windows网络邻居提供浏览列表,显示共享目录,打印机等资源。
安装samba服务器
1.[root@izgt88z6l1kvd7z ~]# yum -y install samba //安装
2.[root@izgt88z6l1kvd7z ~]# systemctl start smb.service //开启
查看samba状态
[root@izgt88z6l1kvd7z ~]# systemctl status smb.service
● smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-05-10 14:59:07 CST; 5h 23min ago //活动状态
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 28614 (smbd)
Status: “smbd: ready to serve connections…”
CGroup: /system.slice/smb.service
├─28614 /usr/sbin/smbd —foreground —no-process-group
├─28616 /usr/sbin/smbd —foreground —no-process-group
├─28617 /usr/sbin/smbd —foreground —no-process-group
└─28618 /usr/sbin/smbd —foreground —no-process-group
May 10 14:59:07 izgt88z6l1kvd7z systemd[1]: Starting Samba SMB Daemon…
May 10 14:59:07 izgt88z6l1kvd7z smbd[28614]: [2020/05/10 14:59:07.716995, 0] ../../lib/util/become_daemon.c:136(daemon_ready)
May 10 14:59:07 izgt88z6l1kvd7z systemd[1]: Started Samba SMB Daemon.
May 10 14:59:07 izgt88z6l1kvd7z smbd[28614]: daemon_ready: daemon ‘smbd’ finished starting up and ready to serve connections
samba的配置
samba的默认配置文件是/etc/samba/smb.conf
[global] 全局配置
[homes]
[peinters]
[print$]都是共享部分
samba的日志与账号
1.samba的服务日志文件存放在 /var/log/samba中
2.samba的服务密码文件存放在 /etc/samba/smbpasswd中
samba账号不能直接创建,必须存在对应的同名系统账号。添加samba账号命令为:smbpasswd -a
过程大概是:
adduser
passwd
smbpasswd -a *