一、Samba服务:

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

2)是Windows和类Unix系统之间的共享文件的一种协议。NFS是Linux和Linux之间的文件共享。

3)客户端是Windows,支持多节点同时挂载以及并发写入。

4)主要是用于windows和linux下的文件共享,打印共享。

5)实现匿名和本地用户的文件共享。

二、Samba的主要进程:

1)smbd进程:控制发布共享目录与权限、负责文件的权限 TCP 139 445

2)nmbd进程:用于名称解析netbios,UDP 137 138 基于NetBIOS协议获得计算机名称

解析为相应的IP地址,实现信息通讯。

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

三、Samba环境的准备:

1)从模板机中克隆一台Linux的服务器,叫做SAMBA服务器:

注意是管理,克隆,在其中选完整克隆。

2)更改主机名和IP地址:

hostnamectl set-hostname samba.chang.cn
vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=none
IPADDR=192.168.17.107
NETWORK=255.255.255.0
GATEWAY=192.168.17.2
DNS1=114.114.114.114
DNS2=8.8.8.8
ONBOOT=yes

# systemctl restart network

扩展:如果是多网卡,建议使用ifdown ens33以及ifup ens33实现重启网络操作。这样操作,对其他业务没有影响。

3)关闭防火墙和SElinux:

systemctl stop firewalld && systemctl disable firewalld

# 临时关闭
setenforce 0

# 永久关闭
vim /etc/selinux/config

SELINUX=disabled

4)配置yum源:

yum clean all
yum makecache

四、Samba软件的安装:(服务器搭建)

yum install -y samba

rpm -qa |grep samba

说明:samba也是一个C/S架构的软件。Client主要是Windows。

了解下samba的配置文件smb.conf

vim /et/samba/smb.conf

1)global 全局配置,所有的samba都要遵循的配置。

2)workgroup: 工作组;

3)security=user:认证模式:share匿名 user用户密码,server是外部服务。

4)passdb backend = tdbsam  密码格式

说明:tdbsam数据库,smpassword的密码文件。

5)load printers = yes    加载打印机

6)cups options = raw    打印机选项

7)[homes] 局部选项

8)comment = Home Directories   描述

9)browseable = no   隐藏共享描述

10)writable = yes 可读可写

11)guest ok = no  public = no  需要账号密码访问

12)writable = yes 可写

13)read only = yes

五、案例:

搭建一个SAMBA服务,共享一个目录/samba/share,客户端使用user01/123通过windows或者linux可以访问在该目录里创建文件和删除文件。可读可写权限。

1)samba服务器环境准备;

2)安全samba软件;

3)查询samba生成文件列表(rpm -ql )

4)在我们的服务器端创建一个共享目录:

mkdir -p /samba/share

5)编辑/etc/samba/smb.conf配置文件,实现Samba文件共享:

[share]
    comment = samba server
    path = /samba/share
    guest ok = on
    writable = yes

备注:guest ok = public

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

useradd user01
smbpasswd -a user01
然后设置密码123

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

7)然后显示一下用户:

pdbedit -L

8)启动服务:

systemctl restart nmb
systemctl restart smb

9) 基于windows或者linux实现文件共享:

然后windows进行挂载:

windows下如果无法访问,请查看是否开启了smb客户端程序:在控制面板中添加smb协议支持。

 然后在windows11中右击我的电脑,选择映射网络驱动器。

下图中的share,就是在smb.conf配置文件中的[share]局部选项的SAMBA标签。

然后输入凭据。如果之前输入过了,就不再需要了。

然后在/samba/share目录中创建123.txt文件。

然后可以看到文件已经在共享目录中显示。

 权限的配置:

我们想在目录中创建文件或目录,发现没有权限,目录不可写。我们smb.conf配置文件中已经开通了可写权限,但是这个时候还是没有权限,那就是跟这个目录的权限有关,/samba/share的目录没有权限。这个是要注意的。那么,我们可以针对这个用户或者用户组增加权限。

然后我们可以使用命令:

chmod a+w /samba/share
setfacl -m u:user01:rwx /samba/share

getfacl /samba/share  # 查看目录权限

Linux下查看samba服务的共享文件:

smbclient -L 192.168.17.107 -U user01

直接访问smb服务:使用smbclient 查看目录信息。

smbclient //192.168.17.107/share -U user01

 

通过help命令进行查询。

 权限问题:

是目录本身有没有对user01用户开放权限。我们可以针对用户或者针对组进行权限的设置:

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

setfacl -m g:admin:rx /samba/share

另外还有一个挂载使用:

把samba挂载到linux中:

mkdir /u01

mount.cifs -o user=user01,pass=123 //192.168.17.107/share /u01

# 没有mount.cifs命令,需要安装cifs-utils-4.8.1-19.el6.x86_64

yum install -y cifs-utils

注意:1)user01后面有一个逗号;

2)/share 这是SAMBA标签。

最后:如果是Linux与Linux的文件共享,我们更倾向于使用NFS。

ftp:局域网和外网都可以使用。

nfs:局域网,挂载方式访问mount.nfs 侧重于Linux和Linux之间的访问。

samba局域网:直接访问smbclient, 挂载方式是mount.cifs,侧重于Windows和Linux之间。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐