首页天道酬勤samba协议访问,samba协议是什么意思

samba协议访问,samba协议是什么意思

admin 08-23 05:49 283次浏览

Samba服务—SMB协议
在windows当中我们最常见的就是网上邻居可以看到同一互联网上连接的所有用户

在服务器端,linux与window Server相比的稳定性,安全性执行效率以及性价比都是较高的。所以好多window Server下跑的一些服务都会切换到运行在linux服务上,但是对于一些桌面用户来说用到的较多的就是文件共享协议。而在linux中我们可以使用 FTP NFS这类型文件共享协议,但是对于window上比较简单的直接打开的服务在linux中的nfs协议来说是不能在window上使用的这种直接将文件系统共享出来的协议为SMB。

与ftp的区别是不用将文件下载下来在使用,是直接可以在共享中打开使用的,所以说这种共享方式在使用当中是非常方便的,但是SMB是window当中的一种私有协议。即使如此在linux当也提供对SMB协议的一种支持。(虽然是window下的私有协议但是我们的开源技术团队为我们的linux也提供了这种服务称为samba服务,在开发过程中也是相当的艰苦 ,由于在window下是闭源的所以开发者是通过抓包分析window下所产生的数据包来实现的。弄清楚它的一个原理。)

SMB(Server Message block)协议是window下所使用的文件共享协议,我们在linux系统或者其类unix系统当中可以通过samba服务来实现SMB功能。

Samba服务是SMB的一个开源实现,而smb的一些主要功能如
下:

1.通过SMB协议进行文件共享
2.通过SMB协议进行打印共享(我们可以通过在linux上通过smb配置打印服务器,为window提供打印服务)
3.加入一个windows2000/2003/2008域环境
(在企业环境当中应用最多,目前smb是支持这三种主流的window服务操作系统的,好多企业当中整个的企业环境当中是使用window的域环境进行管理的,而所有的用户组,权限,组策略信息都是在window域环境进行配置的,那么但是我们的企业又想把一些应用服务和需要用到的一些域环境进行认证或者是做权限控制的这些应用服务去切换到linux系统当中,那在这种情况下就涉及到我如何和window下的这些域环境进行兼容,那么smb是可以加入window域环境当中,并且是可以和window下的这些域环境进行认证操作的。所以smb这个协议是相当强大的不仅限于只是实现文件共享)

SAMBA
安装samba。
Yum install samba -y
Samba拥有两个主服务(相关服务),对于一般使用的服务他只有一个主服务
smbd (提供samba核心功能也是使用最多的一种功能) 提供文件及打印共享服务功能,使用139/445端口
nmbd 提供Netbios(解析协议,慢慢的被淘汰)支持,使用137/138端口,而对于这种协议使用较少,现在都是dns进行解析
一般作为文件共享使用samba,则只需要smbd服务

SAMBA配置文件
Samba的配置文件为/etc/samba/smb.conf
配置文件分为三个部分:
[global] 定义全局性配置(配置samba服务的相关参数)
[homes] 定义对用户家目录的共享配置(其实在默认情况下不做任何设置,直接启用服务我们就可以通过smb协议访问所有用户的家目录)
[printers] 定义打印机共享配置

[global]
workgroup = MYGROUP 定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)
server string = Samba Server Version %v
设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用%v = Samba服务的版本号。
log file = /var/log/samba/log.%m 定义记录文件的位置LogFileName
max log size = 50 定义记录文件的大小size(单位是KB,如果是0的话就不限大小)
security = user
load printers = yes

定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:

share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。

[homes]
在smb.conf文件中一般没有对这个目录的设定特定内容比如路径等。当客户机发出服务请求时,就在smb.conf文件的其它部分查找友特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享。下面是这个段的最基本的几个设置。
comment = Home Directories
browseable = no
writable = yes

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
write list = +staff @用来指定可以在该共享下写入文件的用户
这里printable指明该打印机可以打印, guest ok说明游客也能打印,path指明打印的文件队列暂时放到/var/spool/samba目录下。

主配置文件格式:
[global] ###全局控制段###
workgroup = workgroup #工作组
server string = Samba Server Version %v
security = user
encrypt passwords = yes #密码加密
wins support = yes #wins支持
log level = 1 #日志级别
max log size = 1000 #最大日志kb
read only = no #可读写

[homes] #家目录
browsable = no #浏览
map archive = yes

[printers] #打印机
path = /var/tmp #指定目录
printable = yes #是个打印机
min print space = 2000 #空间

e.g.
[global]
workgroup = workgroup

[homes]
browseable = no
writable = yes

[test]
path = /share
comment = test a directory

#重启服务
[root@mail samba]# systemctl restart smb
[root@mail samba]# systemctl restart nmb

windows系统中删除登陆缓存信息
cmd>net use * /delete
在window资源设备器上去访问:\192.168.0.130

提示要账号和密码:
添加samba用户
(先useradd添加用户)
[root@localhost samba]# smbpasswd -a xixi
New SMB password:
Retype new SMB password:
Added user xixi.
查看samba用户用
#pdbedit -L
最后看到两个目录 用户家目录 xixi test 对应得是/share

Multiuser机制
所需软件包:cifs-utils
手动挂载:mount //服务器地址/共享名 挂载点
开机挂载配置/etc/fstab://服务器地址/共享名 挂载点 cifs _netdev 0 0
_netdev:网络设备(请启动完成网络服务,再进行挂载此设备)
cifs: samba使用的文件系统是cifs
Multiuser机制

Samba的multiuser挂载技术
Ø 管理员只需作一次挂载
Ø 客户端在访问挂载点时,若需不同权限,可以临时切换为新的共享用户(无需重新挂载)。
挂载参数需要添加“multiuser,sec=ntlmssp”,客户机上的普通用户可以通过cifscreds命令提交新的身份凭据。
在客户端挂载Samba共享目录,需要软件包cifs-utils的支持。
为访问网络资源配置开机挂载时,注意添加参数“_netdev”,表示等客户机网络配置可用以后才挂载对应资源。
/etc/fstab挂载参数:
//服务器地址/共享名 /挂载点 cifs username=用户名,password=密码,multiuser,sec=ntlmssp,_netdev 0 0

实现方式:
Ø 挂载smb共享时启用multiuser支持;
Ø 使用cifscreds临时切换身份
mount.cifs挂载参数调整
Ø multiuser,提供对客户端多个用户身份的区分支持
Ø sec=ntlmssp,提供NT局域网管理安全支持
多用户挂载参数:multiuser,sec=ntlmssp,_netdev
客户机多用户测试,切换共享用户身份
Ø 在客户端以普通用户登入 :#su - 普通用户
Ø 使用cifscreds提交新的用户凭据并测试:
cifscreds add|update -u 共享用户名 服务器地址

5种方式实现 Java 单例模式Centos8 web console(cockpit)locate指令是什么-linux运维四年来Android面试大纲
smb协议讲解,smb协议分析 linux服务器和window服务器文件共享,服务器配置文件共享
相关内容