文件服务-SAMBA

文件服务-SAMBA

介绍

历史

  • 1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block),服务器消息块协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。
  • 1991年,当时还在读大学的Tridgwell为解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了 SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。
  • Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以SMB是没有意义的 字符而拒绝了申请。
  • 后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。
  • Samba服务程序现在已经成为在Linux系 统与Windows系统之间共享文件的最佳选择。
  • 基于C/S架构

概述

  • SMB协议实现文件共享,也称为CIFS(Common Internet File System)

  • 是Windows和Linux/Unix系统之间共享文件的一种协议

  • 客户端主要是Windows

  • 使用NetBIOS的名字解释器让Linux机器可以在Windows的网络邻居中被看到,从而和Windows进行相互沟通,共享文件和打印机

  • 支持多节点同时挂载以及并发写入

  • 主要用于windows和Linux下的文件共享、打印共享

  • 实现匿名用户与本地用户文件共享

NetBIOS协议

  • NetBIOS是Network Basic Input/Output System的简称,网络基本输入输出协议。协议,一般指能用于局域网通信的一套API,是由IBM公司开发的。

  • 通过NetBIOS协议获得计算机名称,然后把计算机名称解析为对应的IP地址

主要进程

  • smbd进程:控制发布共享目录与权限、负责文件传输,基于TCP

    端口号:139,445

  • nmbd进程:用于名称解析netbios,基于UDP

    端口号:137 138

配置文件

[root@samba ~]# vim /etc/samba/smb.conf

[global] #全局选项
    workgroup = SAMBA #定义samba服务器所在的工作组
    security = user #认证模式:share匿名|user用户密码|server外部服务器用户密码

    passdb backend = tdbsam #密码格式

    printing = cups
    printcap name = cups
    load printers = yes #加载打印机
    cups options = raw #打印机选项

[homes] #局部选项(共享名称)
    comment = Home Directories #描述
    valid users = %S, %D%w%S
    browseable = No #隐藏共享名称
    read only = No #只读
    inherit acls = Yes 

[printers] #局部选项(共享名称)
    comment = All Printers
    path = /var/tmp #本地的共享目录
    printable = Yes #打印选项
    create mask = 0600 #创建文件的权限
    browseable = No #需要帐号和密码访问
    guest ok = no

[print$] #局部选项(共享名称)
    comment = Printer Drivers
    path = /var/lib/samba/drivers
    write list = @printadmin root
    force group = @printadmin
    create mask = 0664
    directory mask = 0775

SAMBA搭建共享文件

要求

  • 共享/samba/share 目录
  • 允许在共享目录中创建或删除文件
环境准备
[root@server1 ~]# hostnamectl set-hostname samba
[root@server1 ~]# su
[root@samba ~]#
[root@samba ~]# systemctl stop firewalld.service
[root@samba ~]# systemctl disable firewalld.service
[root@samba ~]# systemctl status firewalld.service
[root@samba ~]# setenforce 0
[root@samba ~]# sed -i 's/enforced/disabled/' /etc/selinux/config
[root@samba ~]# getenforce

安装
[root@samba ~]# yum install -y samba

创建共享目录
[root@samba ~]# mkdir /samba/share -p
 
编写配置文件
[root@samba ~]# vim /etc/samba/smb.conf
#追加
[samba_share]
    comment = Samba Service
    path = /samba/share
    guest ok = No
    writable = Yes
    
创建一个用户,samba认证
[root@samba ~]# useradd user01
[root@samba ~]# smbpasswd -a user01
New SMB password:#1
Retype new SMB password:#1
Added user user01.
[root@samba ~]# pdbedit -L
user01:1001:

启动服务
[root@samba ~]# systemctl start smb
[root@samba ~]# systemctl start nmb

为user01设置权限
[root@samba ~]# setfacl -m u:user01:rwx /samba/share/

基于Windows文件共享

Windows+x–>控制面板–>大图标–>程序与功能–>启用或关闭Windows功能–>勾选SMB 1.0/CIFS文件共享支持–>重启

在这里插入图片描述

此电脑–>计算机–>映射网络驱动器–>

\\192.168.226.10\samba_share

#SAMBA标签可能是smb_share等,如果连接不上SAMBA服务,可以尝试更换标签
查看标签
yum install -y samba-client
smbclient -L 192.168.226.10 -U user01

在这里插入图片描述

基于Linux文件共享

[root@server2 ~]# yum install -y samba-client
[root@server2 ~]# smbclient -L 192.168.226.10 -U user01
Enter SAMBA\user01's password: 

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	samba_share     Disk      Samba Service
	IPC$            IPC       IPC Service (Samba 4.10.16)
	user01          Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.

	Server               Comment
	---------            -------
	SAMBA                Samba 4.10.16

	Workgroup            Master
	---------            -------
	SAMBA                SAMBA
[root@server2 ~]# smbclient //192.168.226.10/samba_share -U user01
Enter SAMBA\user01's password: 
Try "help" to get a list of possible commands.
smb: \> help
?              allinfo        altname        archive        backup         
blocksize      cancel         case_sensitive cd             chmod          
chown          close          del            deltree        dir            
du             echo           exit           get            getfacl        
geteas         hardlink       help           history        iosize         
lcd            link           lock           lowercase      ls             
l              mask           md             mget           mkdir          
more           mput           newer          notify         open           
posix          posix_encrypt  posix_open     posix_mkdir    posix_rmdir    
posix_unlink   posix_whoami   print          prompt         put            
pwd            q              queue          quit           readlink       
rd             recurse        reget          rename         reput          
rm             rmdir          showacls       setea          setmode        
scopy          stat           symlink        tar            tarmode        
timeout        translate      unlock         volume         vuid           
wdel           logon          listconnect    showconnect    tcon           
tdis           tid            utimes         logoff         ..             
!              
smb: \> ls
  .                                   D        0  Sat Aug 21 15:32:02 2021
  ..                                  D        0  Sat Aug 21 13:20:25 2021
  新建 DOC 文档.doc               A     9216  Sat Aug 21 15:32:02 2021

		17811456 blocks of size 1024. 15881848 blocks available
smb: \> quit

把SAMBA挂载到Linux中
[root@server2 ~]# mkdir /samba_mount
[root@server2 ~]# yum install -y cifs-utils
[root@server2 ~]# mount.cifs -o user=user01,pass=1 //192.168.226.10/samba_share /samba_mount

ftp&nfs&samba比较

服务比较
ftp支持局域网访问,也支持外网访问
nfs仅支持局域网访问,侧重于Linux与Linux文件共享,挂载方式:mount.nfs
samba仅支持局域网访问,侧重于Windows与Linux文件共享,挂载方式:mount.cifs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值