一、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之间。
转自:
https://blog.csdn.net/chang_chunhua/article/details/129266510