一文简述什么是Samba服务

一文简述什么是Samba服务

今天来简单聊一聊SAMBA服务,SAMBA服务主要用于实现windows和Linux下的文件共享、打印共享等。

一、SAMBA文件共享1、什么是SAMBA?SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System),是Windows和类Unix系统之间共享文件的一种协议。

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

主要用于windows和Linux下的文件共享、打印共享,实现匿名与本地用户文件共享

2、SAMBA主要进程2.1 smbd进程控制发布共享目录与权限、负责文件传输 ,TCP,139 445

2.2 nmbd进程1)用于名称解析netbios,UDP,137 138 ;

2)基于NETBIOS协议获得计算机名称 => 解析为相应IP地址,实现信息通讯

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

3、SAMBA环境准备1)从模板机中克隆一台Linux服务器SAMBA

2)更改主机名与IP地址

代码语言:powershell复制# 更改主机名

hostnamectl set-hostname samba.itweb.cn

# 切换生效

su

# 打开网卡配置文件并编辑

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=none

IPADDR=192.168.91.10

NETMASK=255.255.255.0

GATEWAY=192.168.91.2

DNS1=8.8.8.8

DNS2=114.114.114.114

# 重启网络

systemctl restart network3)关闭防火墙与SELinux

代码语言:powershell复制#关闭防火墙

systemctl stop firewalld

#禁止开机启动

systemctl disable firewalld

#获取SELinux的状态,并关闭

setenforce 0

vim /etc/selinux/config

SELINUX=disabled4)配置yum源

有网情况下使用默认yum源即可

代码语言:powershell复制yum clean all

yum makecache4、SAMBA软件安装服务器搭建:

代码语言:powershell复制# 安装软件

yum install samba -y

# 查询所有以samba开头的软件包

rpm -qa |grep ^samba注:SAMBA是一个C/S架构的软件,Client主要是Windows

5、smb配置文件了解一些大概的,会用即可。

代码语言:powershell复制# 打开配置文件

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 = yes6、SAMBA案例搭建一个SAMBA服务,共享一个目录/samba/share,客户端使用user01/123,通过windows或Linux可以在该目录里创建或删除文件。

1)SAMBA服务器环境准备

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

2)安装SAMBA软件

代码语言:powershell复制yum install samba -y3)查询SAMBA生成文件列表(rpm -ql)

代码语言:powershell复制rpm -ql samba4)在服务器端创建一个共享目录

代码语言:powershell复制mkdir /samba/share -p5)编辑配置文件(/etc/smb.conf),实现SAMBA共享

代码语言:powershell复制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

6)创建一个user01用户,然后添加到samba认证中,设置密码为123

代码语言:powershell复制# 创建用户

useradd user01

# 设置密码

smbpasswd -a user01上述操作完成后,SAMBA系统中就增加了一个user01的账号及123的密码

7)启动nmb与smb服务

代码语言:powershell复制systemctl start nmb

systemctl start smb8)基于Windows或Linux实现文件共享

Windows:

a、首先安装SAMBA支持。打开控制面板 => 程序与功能选项。

b、找到Windows功能选项

c、安装SAMBA功能(客户端)

如下勾选上即可

d、进入计算机(此电脑)=> 映射网络驱动器

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

192.168.91.10 => Linux服务器的IP地址

smb_share => 配置的SAMBA标签

问题:为什么挂载完成后,目录不可写?

答:由于/samba/share目录没有写入权限

解决:增加权限

代码语言:powershell复制# 针对/samba/share目录设置一个权限

setfacl -m u:user01:rwx /samba/share9)基于Linux或Linux实现文件共享

代码语言:powershell复制smbclient -L 192.168.91.10 -U user01使用smbclient查看目录信息

代码语言:powershell复制smbclient //192.168.91.10/smb_share -U user01把SAMBA挂载到Linux系统(类似NFS)

代码语言:powershell复制mkdir /u01

mount.cifs -o user=user01,pass=123 //192.168.91.10/smb_share /u01访问控制说明:

代码语言:powershell复制# 控制读写权限

writable = yes/no

readonly = yes/no

# 如果资源可写,但只允许某些用户可写,其他都是只读

write list = admin, root, @staff(用户组)

read list = mary, @students

# 控制访问对象(以上两个选项只能存在其中一个)

valid users = tom,mary,@itcast

invalid users = tom

# 网络访问控制(若deny和allow同时存在,allow优先)

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

相关推荐

esp是哪个国家,ESP是哪个国家的缩写?
365娱乐app官方版下载

esp是哪个国家,ESP是哪个国家的缩写?

📅 07-20 👁️ 9375
为什么起凡玩家越来越少?探究其玩家流失的根本原因
全球最大体育平台365

为什么起凡玩家越来越少?探究其玩家流失的根本原因

📅 07-24 👁️ 4409
金蝶财务软件有哪些版本?全版本矩阵及中小企业适配推荐
必发365娱乐在线官网

金蝶财务软件有哪些版本?全版本矩阵及中小企业适配推荐

📅 09-25 👁️ 2188