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

被折叠的 条评论
为什么被折叠?



