SAMBA文件共享服务

举报
tea_year 发表于 2024/08/30 10:56:06 2024/08/30
【摘要】 SAMBA文件共享服务一、SAMBA文件共享1、什么是SAMBASMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System )是Windows和类Unix系统之间共享文件的一种协议客户端==主要是Windows==;支持多节点同时挂载以及并发写入主要用于windows和Linux下的文件共享、打印共享实现==匿名...

SAMBA文件共享服务

一、SAMBA文件共享

1、什么是SAMBA

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

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

客户端==主要是Windows==;支持多节点同时挂载以及并发写入

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

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

2、SAMBA主要进程

smbd进程 控制发布共享目录与权限、==负责文件传输== ==TCP 139 445==

nmbd进程 用于名称解析netbios ==UDP 137 138== ; 基于NETBIOS协议获得计算机名称——>解析为相应IP地址,实现信息通讯

NetBIOS是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API

3、SAMBA环境准备

第一步:从模板机中克隆一台Linux服务器,叫做SAMBA

第二步:更改主机名称与IP地址

# hostnamectl set-hostname samba.cloud.cn
# su

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPADDR=10.1.1.10
NETMASK=255.255.255.0
GATEWAY=10.1.1.2
DNS1=8.8.8.8
DNS2=114.114.114.114
# systemctl restart network
扩展:如果是多张网卡,建议使用ifdown ens33以及ifup ens33实现重启网络操作

第三步:关闭防火墙与SELinux

# systemctl stop firewalld
# systemctl disable firewalld
​
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

第四步:配置yum源

# yum clean all
# yum makecache

4、SAMBA软件安装(服务器搭建)

# yum install samba -y
# rpm -qa |grep ^samba

SAMBA也是一个C/S架构的软件,Client主要是Windows

5、了解smb的配置文件

# vim /etc/samba/smb.conf
[global]  全局选项
    workgroup = MYGROUP                 定义samba服务器所在的工作组
    server string = Samba Server Version %v         smb服务的描述
    log file = /var/log/samba/log.%m            日志文件
    max log size = 50                   日志的最大大小KB  
    security = user             认证模式:share匿名|user用户密码|server外部服务器用户密码
    passdb backend = tdbsam         密码格式
    load printers = yes         加载打印机
    cups options = raw          打印机选项
[homes]                 局部选项(共享名称)
    comment = Home Directories      描述
    browseable = no      隐藏共享名称
    writable = yes      可读可写
[printers]      共享名称
    comment = All Printers       描述
    path = /var/spool/samba  本地的共享目录
    browseable = no  隐藏
    guest ok = no ——>   public = no  需要帐号和密码访问
    writable = no  ——>  read only =yes 不可写 
    printable = yes      打印选项
[share]
    path = /dir1
    guest ok = no
    writable = yes

6、SAMBA综合案例

搭建一个SAMBA服务,共享一个目录/samba/share,客户端使用user01/123通过windows或者Linux可以在该目录里创建文件删除文件

第一步:SAMBA服务器环境准备

更改主机名称、IP地址、关闭防火墙、SELinux、配置YUM源

第二步:安装SAMBA软件

# yum install samba -y
# rpm -aq|grep  ^samba

第三步:查询SAMBA生成文件列表(rpm -ql)

# rpm -ql samba
/usr/sbin/smbd
/usr/sbin/nmbd
​
/usr/lib/systemd/system/smb.service
/usr/lib/systemd/system/nmb.service

第四步:在服务器端创建一个共享目录

# mkdir /samba/share -p

第五步:编辑/etc/smb.conf配置文件,实现SAMBA共享

# vim /etc/samba/smb.conf
...
[smb_share]
        comment = samba service
        path = /samba/share
        guest ok = no
        writable = yes
或者
[samba_share]
        path = /samba/share
        public = no
        writable = yes
​
备注:guest ok === public

第六步:创建一个user01用户,然后添加到samba认证中,设置密码为123

# useradd user01
# smbpasswd -a user01
New SMB password:123
Retype new SMB password:123
Added user user01.

以上操作完成后,则SAMBA系统中增加了一个user01的账号以及123的密码

第七步:启动nmb与smb服务

# systemctl start nmb
# systemctl start smb

第八步:基于Windows或Linux实现文件共享

Windows:

① 首先安装SAMBA支持Windows + X,选择控制面板

image-20200415112837084.png

② 找到Windows功能选项

image-20200415112918419.png


③ 安装SAMBA功能(客户端)

image-20200415113145929.png

④ 进入计算机(我的电脑),找到映射网络驱动器

image-20200415113252801.png

设置SAMBA服务器的地址信息:

 

image-20200415113349174.png


10.1.1.10 => Linux服务器的IP地址

smb_share => SAMBA标签

挂载完成后,目录不可写?答:主要原因在于/samba/share目录没有写入权限

# setfacl -m u:user01:rwx /samba/share

第九步:基于Linux或Linux实现文件共享

# smbclient -L 10.1.1.10 -U user01

使用smbclient查看目录信息

# smbclient //10.1.1.10/smb_share -U user01

把SAMBA挂载到Linux系统(类似NFS)

# mkdir /u01
# mount.cifs -o user=user01,pass=123 //10.1.1.10/smb_share /u01

访问控制说明:

控制读写权限
	writable = yes/no
	readonly = yes/no

如果资源可写,但只允许某些用户可写,其他都是只读
write list = admin, root, @staff(用户组)
read list = mary, @students

控制访问对象
	valid users = tom,mary,@cloud
	invalid users = tom
注意:以上两个选项只能存在其中一个

网络访问控制:
hosts deny = 192.168.0.   拒绝某个网段
hosts allow = 192.168.0.254  允许某个IP
hosts deny = all  拒绝所有
hosts allow = 192.168.0. EXCEPT 192.168.0.254  允许某个网段,但拒绝某个单个IP
注意:deny和allow同时存在,allow优先

7、总结

  1. ftp 局域网和外网都可以

  2. nfs 局域网 挂载方式访问 mount.nfs 侧重于Linux与Linux之间

  3. samba 局域网 直接访问(smbclinet)挂载的方式mount.cifs 侧重于Windows与Linux之间

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。