Samba服务实现Linux共享目录存储

本文详述了如何在Linux服务器上安装和配置Samba服务,包括设置yum仓库、安装服务端和客户端、修改配置文件、权限设置、防火墙策略调整以及Windows环境下的验证。此外,还介绍了客户端如何挂载和卸载Samba共享目录。

Samba服务实现Linux共享目录存储


本文档为服务器搭建部署Samba服务实现共享目录存储操作文档。

背景说明

起初我们为什么会用到共享目录,共享文件夹,最开始是为了更方面自己使用,后来我们会共享文件给其他人阅读,分享给群里面的同学。

那么我们Linux共享目录又有何用途呢, 那么结合我最近部署的一个项目来说,这是一个软件工程项目,后端是使用的微服务架构,其中有部分功能是上传文件,下载文件之内的功能,我在部署集群模式的时候,设置了3个节点,相当于后台要三台机器,那么我们上传的文件放在那个目录便成了一个问题?

设置共享目录是为了使3台机器的服务都可以读共享目录的内容,并且可以写文件到共享目录。对于服务器来说,相当于把一台机器的目录共享给另外2台来使用,合理分配资源,相比单独安装Nas存储更加方便。
 关于Samba服务共享目录的应用还有很多,包括共享给Win,MacOS操作系统等。

以下是运维的一个同事推荐给我的一个方案使用Samba服务实现服务器目录共享,适用于各种linux操作系统,非常方便,通过实践过后,我整理了以下的步骤贡献给圈里的小伙伴。

1、yum软件包远程仓库设置

1.2、查询yum地址信息

cd /etc/yum.repos.d/

1.3、修改启用的源

yum repolist all

sed -n ‘%enabled% p’ /etc/yum.repos.d/*.repo

cat iso_xxe.repo

[UnionTechOS-Server-20-iso-xxe]
name=UnionTechOS-Server-20-iso-xxe
baseurl=http://x.x.x.x
enabled=1
gpgcheck=0

2、服务端Samba安装

2.1、查询yum源的安装包

[root@ADMIN-APP02 uos]# yum list|grep samba
samba-client.x86_64                               4.11.12-11.uel20                                @anaconda
samba-common.x86_64                               4.11.12-11.uel20                                @anaconda
pcp-pmda-samba.x86_64                             4.1.3-13.up1.uel20                              UnionTechOS-Server-20-iso-1050e
samba.x86_64                                      4.11.12-9.uel20                                 UnionTechOS-Server-20-iso-1050e
samba-common-tools.x86_64                         4.11.12-9.uel20                                 UnionTechOS-Server-20-iso-1050e
samba-help.x86_64                                 4.11.12-9.uel20                                 UnionTechOS-Server-20-iso-1050e
samba-libs.x86_64                                 4.11.12-9.uel20                                 UnionTechOS-Server-20-iso-1050e
samba-winbind.x86_64                              4.11.12-9.uel20                                 UnionTechOS-Server-20-iso-1050e
samba-winbind-clients.x86_64                      4.11.12-9.uel20                                 UnionTechOS-Server-20-iso-1050e
samba-winbind-modules.x86_64                      4.11.12-9.uel20                                 UnionTechOS-Server-20-iso-1050e

2.2、使用命令:“rpm -qa|grep samba“查询已安装好的Samba信息

 命令:“rpm -qa|grep samba“
[root@ADMIN-APP02 uos]# rpm -qa|grep samba
samba-client-4.11.12-11.uel20.x86_64
samba-common-4.11.12-11.uel20.x86_64

 安装后
[root@ADMIN-APP02 uos]# rpm -qa|grep samba
samba-common-tools-4.11.12-9.uel20.x86_64
samba-client-4.11.12-9.uel20.x86_64
samba-4.11.12-9.uel20.x86_64
samba-libs-4.11.12-9.uel20.x86_64
samba-common-4.11.12-9.uel20.x86_64
samba-help-4.11.12-9.uel20.x86_64

2.3、samba 安装命令

[root@ADMIN-APP02 uos]# yum install samba
Last metadata expiration check: 1:54:13 ago on 2022年12月27日 星期二 12时53分34秒.
Dependencies resolved.
=============================================================================================================================================================================================
 Package                                       Architecture                      Version                                    Repository                                                  Size
=============================================================================================================================================================================================
Installing:
 samba                                         x86_64                            4.11.12-9.uel20                            UnionTechOS-Server-20-iso-1050e                            552 k
Installing dependencies:
 samba-common-tools                            x86_64                            4.11.12-9.uel20                            UnionTechOS-Server-20-iso-1050e                            340 k
 samba-help                                    x86_64                            4.11.12-9.uel20                            UnionTechOS-Server-20-iso-1050e                            463 k
 samba-libs                                    x86_64                            4.11.12-9.uel20                            UnionTechOS-Server-20-iso-1050e                             82 k
Downgrading:
 libsmbclient                                  x86_64                            4.11.12-9.uel20                            UnionTechOS-Server-20-iso-1050e                             66 k
 libwbclient                                   x86_64                            4.11.12-9.uel20                            UnionTechOS-Server-20-iso-1050e                             37 k
 samba-client                                  x86_64                            4.11.12-9.uel20                            UnionTechOS-Server-20-iso-1050e                            5.2 M
 samba-common                                  x86_64                            4.11.12-9.uel20                            UnionTechOS-Server-20-iso-1050e                            100 k

Transaction Summary
=============================================================================================================================================================================================
Install    4 Packages
Downgrade  4 Packages

Total download size: 6.8 M
Is this ok [y/N]: y
Downloading Packages:
(1/8): libwbclient-4.11.12-9.uel20.x86_64.rpm                                                                                                                6.1 MB/s |  37 kB     00:00
(2/8): libsmbclient-4.11.12-9.uel20.x86_64.rpm                                                                                                               7.0 MB/s |  66 kB     00:00
(3/8): samba-common-4.11.12-9.uel20.x86_64.rpm                                                                                                               6.1 MB/s | 100 kB     00:00
(4/8): samba-common-tools-4.11.12-9.uel20.x86_64.rpm                                                                                                          32 MB/s | 340 kB     00:00
(5/8): samba-4.11.12-9.uel20.x86_64.rpm                                                                                                                       21 MB/s | 552 kB     00:00
(6/8): samba-libs-4.11.12-9.uel20.x86_64.rpm                                                                                                                  35 MB/s |  82 kB     00:00
(7/8): samba-help-4.11.12-9.uel20.x86_64.rpm                                                                                                                  74 MB/s | 463 kB     00:00
(8/8): samba-client-4.11.12-9.uel20.x86_64.rpm                                                                                                                93 MB/s | 5.2 MB     00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                        117 MB/s | 6.8 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                     1/1
  Downgrading      : libwbclient-4.11.12-9.uel20.x86_64                                                                                                                                 1/12
  Running scriptlet: samba-common-4.11.12-9.uel20.x86_64                                                                                                                                2/12
  Downgrading      : samba-common-4.11.12-9.uel20.x86_64                                                                                                                                2/12
  Running scriptlet: samba-common-4.11.12-9.uel20.x86_64                                                                                                                                2/12
  Downgrading      : samba-client-4.11.12-9.uel20.x86_64                                                                                                                                3/12
  Running scriptlet: samba-client-4.11.12-9.uel20.x86_64                                                                                                                                3/12
  Downgrading      : libsmbclient-4.11.12-9.uel20.x86_64                                                                                                                                4/12
  Installing       : samba-libs-4.11.12-9.uel20.x86_64                                                                                                                                  5/12
  Installing       : samba-common-tools-4.11.12-9.uel20.x86_64                                                                                                                          6/12
  Installing       : samba-help-4.11.12-9.uel20.x86_64                                                                                                                                  7/12
  Installing       : samba-4.11.12-9.uel20.x86_64                                                                                                                                       8/12
  Running scriptlet: samba-4.11.12-9.uel20.x86_64                                                                                                                                       8/12
  Running scriptlet: samba-client-4.11.12-11.uel20.x86_64                                                                                                                               9/12
  Cleanup          : samba-client-4.11.12-11.uel20.x86_64                                                                                                                               9/12
  Running scriptlet: samba-client-4.11.12-11.uel20.x86_64                                                                                                                               9/12
  Cleanup          : libsmbclient-4.11.12-11.uel20.x86_64                                                                                                                              10/12
  Running scriptlet: libwbclient-4.11.12-11.uel20.x86_64                                                                                                                               11/12
  Cleanup          : libwbclient-4.11.12-11.uel20.x86_64                                                                                                                               11/12
  Cleanup          : samba-common-4.11.12-11.uel20.x86_64                                                                                                                              12/12
  Running scriptlet: samba-common-4.11.12-11.uel20.x86_64                                                                                                                              12/12
  Running scriptlet: libwbclient-4.11.12-9.uel20.x86_64                                                                                                                                12/12
  Running scriptlet: samba-common-4.11.12-11.uel20.x86_64                                                                                                                              12/12
  Verifying        : libsmbclient-4.11.12-9.uel20.x86_64                                                                                                                                1/12
  Verifying        : libsmbclient-4.11.12-11.uel20.x86_64                                                                                                                               2/12
  Verifying        : libwbclient-4.11.12-9.uel20.x86_64                                                                                                                                 3/12
  Verifying        : libwbclient-4.11.12-11.uel20.x86_64                                                                                                                                4/12
  Verifying        : samba-client-4.11.12-9.uel20.x86_64                                                                                                                                5/12
  Verifying        : samba-client-4.11.12-11.uel20.x86_64                                                                                                                               6/12
  Verifying        : samba-common-4.11.12-9.uel20.x86_64                                                                                                                                7/12
  Verifying        : samba-common-4.11.12-11.uel20.x86_64                                                                                                                               8/12
  Verifying        : samba-4.11.12-9.uel20.x86_64                                                                                                                                       9/12
  Verifying        : samba-common-tools-4.11.12-9.uel20.x86_64                                                                                                                         10/12
  Verifying        : samba-help-4.11.12-9.uel20.x86_64                                                                                                                                 11/12
  Verifying        : samba-libs-4.11.12-9.uel20.x86_64                                                                                                                                 12/12

Downgraded:
  libsmbclient-4.11.12-9.uel20.x86_64            libwbclient-4.11.12-9.uel20.x86_64            samba-client-4.11.12-9.uel20.x86_64            samba-common-4.11.12-9.uel20.x86_64

Installed:
  samba-4.11.12-9.uel20.x86_64             samba-common-tools-4.11.12-9.uel20.x86_64             samba-help-4.11.12-9.uel20.x86_64             samba-libs-4.11.12-9.uel20.x86_64

Complete!

2.4、添加共享文件夹的用户,使用“smbpasswd -a username”

smbpasswd -a uos

[root@ADMIN-APP02 home]# smbpasswd -a uos
New SMB password:
Retype new SMB password:
Added user uos.

2.5、创建共享目录

使用命令 “mkdir /data”

2.6、共享目录赋权

使用命令 “chmod -R 777 /data”

2.7、编辑Samba配置文件

使用命令 “cd /etc/samba” 进入Samba配置文件目录,并使用“ls”列出该目录下所有文件,其中“smb.conf.bak”,是使用命令"cp smb.conf smb.conf.bak"对Samba配置文件做的一个备份

2.8、使用命令 “vi smb.conf”,进入Samba配置文件,修改配置文件

[root@ADMIN-APP02 samba]# vi smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = SAMBA
        security = user

        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
        create mode= 0664
        force create mode = 0644
        directory mask = 0775
        force directory model = 0775
        writable = yes
[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
[data]
        comment = data
        path =/data
        write list =@uos
~

2.9、关闭防火墙

使用命令 "systemctl stop firewalld"关闭防火墙,然后使用命令“systemctl disable firewalld”禁止防火墙开机启动

[root@ADMIN-APP02 samba]# systemctl stop firewalld
[root@ADMIN-APP02 samba]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

或者设置防火墙策略,添加服务、开启smb服务

firewall-cmd --permanent --add-service=samba

firewall-cmd --permanent --add-service=samba-client

firewalld.service 永久设置,重启服务: firewall restart

2.10、Samba服务启停

启动Samba服务,使用命令 “systemctl start smb”

[root@ADMIN-APP02 samba]# systemctl start smb

停用Samba服务,使用命令 “systemctl stop smb”

[root@ADMIN-APP02 samba]# systemctl stop smb

2.11、查看IP地址 ifconfig

2.12、windows环境验证Samba服务

启动Samba服务后,在Window系统下按下,输入“\共享文件加IP地址",在看到文件夹后,点击进入文件夹,输入账户名和密码即可查看共享文件。

3、安装Samba客户端访问

3.1、查询安装包

rpm -qa samba-client|grep samba-client
[root@ADMIN-APP02 data]# rpm -qa samba-client|grep samba-client
samba-client-4.11.12-9.uel20.x86_64

3.2、安装Samba客户端包

yum -y install samba-client cifs-utils

[root@ADMIN-APP02 data]# yum -y install samba-client
Last metadata expiration check: 0:44:11 ago on 2022年12月27日 星期二 15时56分34秒.
Package samba-client-4.11.12-9.uel20.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

3.3、关闭selinux

cat /etc/sysconfig/selinux

3.4、Linux环境测试验证 smblient

smbclient -U uos //x.x.x.x/data
smbclient -L -U uos //x.x.x.x/data

3.5、客户端挂在共享文件

mkdir /data
chmod -R 777 /data
su uos
mount -t cifs //x.x.x.x/data /data/

提示错误,则安装3.6)安装

[root@ADMIN-APP01 /]# mount -t cifs //x.x.x.x/data /data/
mount: /data: 选项错误;对某些文件系统(如 nfs、cifs)您可能需要一款 /sbin/mount.<类型> 的帮助程序.

|| 
mount -t cifs //x.x.x.x/data /data/ -o username=x,password=xx
*** 解决挂载uos 读写权限问题 id=uos
mount -t cifs //x.x.x.x/data /data/ -o username=uos,password=pwdpwd,uid=1000,gid=1000

3.6、客户端安装cifs-utils包

yum -y install cifs-utils

3.7、开机自动挂载

vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Tue Nov 15 03:23:52 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
//x.x.x.x/data /data/                                          cifs    defaults,username=uos,password=pwdpwd 0 0
Your system is not activated. Please activate as soon as possible for normal use.

//x.x.x.x/data /data/ cifs defaults,auto,username=uos,password=pwdpwd,uid=1000,gid=1000 0 0

~
~

3.8、手动去掉挂载

umount /data
查询挂载目录相关进程,对进程进线kill
fuser -mv /data

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值