Linux系统之部署Samba服务
Linux系统之部署Samba服务
- 一、Samba服务介绍
- 1.Samba服务简介
- 2.NFS和CIFS简介
- 3.Smaba服务相关包
- 4.samba监听端口
- 4.samba相关工具及命令
- 二、环境规划介绍
- 1.环境规划
- 2.本次实践介绍
- 三、Samba服务端配置
- 1.检查yum仓库
- 2.安装smaba相关软件包
- 3.创建共享目录
- 4.设置共享目录权限
- 5.新建samba用户
- 6.编辑samba主配置文件
- 7.测试配置文件语法
- 8.启动samba服务
- 9.关闭防火墙或者selinux
- 四、Samba客户端配置
- 1.安装samba-client相关软件包
- 2.检查Samba服务端共享目录
- 3.创建samba认证用户文件smbur
- 4.挂载共享目录
- 5.查看客户端的文件系统
- 五、Samba共享目录的权限测试
- 1.检查alice用户的权限
- 2.kitty和jeven用户的访问权限
一、Samba服务介绍
1.Samba服务简介
1.SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
2.Samba是Linux与Linux或Windows之间实现文件共享及打印机等共享服务。
3.Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。
2.NFS和CIFS简介
-
NFS:网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
-
NFS 与 samba 一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持 windows 平台,samba 是能够在任何支持 SMB 协议的主机之间共享文件的一种实现,当然也包括 windows。
-
CIFS:common internet file system,微软基于SMB发布。CIFS 用于在 Windows 操作系统上运行的远程操作,优先支持使用 Windows 操作系统的用户。
3.Smaba服务相关包
1.samba 提供smb服务
2.samba-client 客户端软件
3.samba-common 通用软件
4.cifs-utils smb客户端工具
5.samba-winbind 和AD相关
4.samba监听端口
TCP:139/445
UDP:137/138
4.samba相关工具及命令
主配置文件:/etc/samba/smb.conf
语法检查: testparm [-v] [/etc/samba/smb.conf]
客户端工具:smbclient,pdbedit -L(列出Samba用户列表,读取passdb.tdb数据库文件)
二、环境规划介绍
1.环境规划
本次环境规划如下:
hostname | IP地址 | 操作系统版本 | 角色 |
---|---|---|---|
jeven | 192.168.3.166 | centos7.6 | 客户端 |
server001 | 192.168.3.157 | centos7.6 | 服务端 |
2.本次实践介绍
1.本次实践环境为个人测试环境,生产环境请谨慎使用;
2.Samba用户为三个(kitty,jeven,alice);
3.3个用户都可以浏览共享目录/share/;
4.kitty和jeven可以写入文件共享目录。
三、Samba服务端配置
1.检查yum仓库
检查yum仓库状态,确保epel已经安装,
没有安装的话,使用 yum install epel-release -y安装。
[root@server001 ~]# yum repolist all |grep enable
!base/7/x86_64 CentOS-7 - Base enabled: 10,072
!docker-ce-stable/7/x86_64 Docker CE Stable - enabled: 226
!epel/x86_64 Extra Packages for enabled: 13,771
!extras/7/x86_64 CentOS-7 - Extras enabled: 515
!mysql-connectors-community/x86_64 MySQL Connectors Co enabled: 220
!mysql-tools-community/x86_64 MySQL Tools Communi enabled: 98
!mysql80-community/x86_64 MySQL 8.0 Community enabled: 405
!remi-safe Safe Remi's RPM rep enabled: 5,147
!updates/7/x86_64 CentOS-7 - Updates enabled: 4,886
!zabbix/x86_64 Zabbix Official Rep enabled: 114
!zabbix-agent2-plugins/x86_64 Zabbix Official Rep enabled: 4
!zabbix-non-supported/x86_64 Zabbix Official Rep enabled: 5
2.安装smaba相关软件包
安装 samba 和samba-client软件包
yum -y install samba samba-client
3.创建共享目录
创建samba共享目录/share
mkdir /share
4.设置共享目录权限
创建共享文件
[root@server001 ~]# cp /etc/passwd /etc/group /share
[root@server001 ~]# ls /share/
group passwd
给共享目录设置777权限
chmod -R 777 /share/
5.新建samba用户
新建三个samba用户,kitty、alice、jeven,其中kitty属于it组。
[root@server001 ~]# groupadd it
[root@server001 ~]# useradd -g it kitty
[root@server001 ~]# useradd alice
[root@server001 ~]# useradd jeven
[root@server001 ~]# smbpasswd -a kitty
New SMB password:
Retype new SMB password:
Added user kitty.
[root@server001 ~]# smbpasswd -a alice
New SMB password:
Retype new SMB password:
Added user alice.
[root@server001 ~]# smbpasswd -a jeven
New SMB password:
Retype new SMB password:
Added user jeven.
[root@server001 ~]#
查看samba用户列表
[root@server001 ~]# pdbedit -L
kitty:1002:
jeven:1004:
alice:1003:
6.编辑samba主配置文件
先备份/etc/samba/smb.conf文件
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
在/etc/samba/smb.conf文件中,新增以下部分:
[share]path = /sharebrowseable = yeswrite list = @it,jevenhosts allow = 192.168.3.0/24
7.测试配置文件语法
测试配置文件语法,确保配置文件修改正确。
[root@server001 ~]# testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONEPress enter to see a dump of your service definitions# Global parameters
[global]printcap name = cupssecurity = USERworkgroup = SAMBAidmap config * : backend = tdbcups options = raw[homes]browseable = Nocomment = Home Directoriesinherit acls = Yesread only = Novalid users = %S %D%w%S[printers]browseable = Nocomment = All Printerscreate mask = 0600path = /var/tmpprintable = Yes[print$]comment = Printer Driverscreate mask = 0664directory mask = 0775force group = @printadminpath = /var/lib/samba/driverswrite list = @printadmin root[share]hosts allow = 192.168.3.0/24path = /sharewrite list = @it jeven
8.启动samba服务
重启samba服务
systemctl enable --now smb
systemctl enable --now nmb
9.关闭防火墙或者selinux
可选择关闭防火墙或者开启防火墙,,放行samba服务
- 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
- 放行samba服务
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
- 关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
四、Samba客户端配置
1.安装samba-client相关软件包
安装samba-client相关软件包
yum -y install samba-client cifs-utils
2.检查Samba服务端共享目录
查看samba共享目录
smbclient -L //192.168.3.157 -U kitty%redhat
[root@jeven ~]# smbclient //192.168.3.157/share -U kitty
Enter SAMBA\kitty's password:
Try "help" to get a list of possible commands.
smb: \> ls. D 0 Fri Apr 21 22:52:23 2023.. D 0 Fri Apr 21 22:47:05 2023passwd N 1296 Fri Apr 21 22:52:23 2023group N 638 Fri Apr 21 22:52:23 202352403200 blocks of size 1024. 33511324 blocks available
smb: \>
3.创建samba认证用户文件smbur
创建samba认证用户文件smbur,使用alice作为认证用户。
echo "username=alice" >> /etc/samba/smbur.txtecho "password=redhat" >> /etc/samba/smbur.txt
4.挂载共享目录
创建挂载目录
mkdir -p /samba/share
在/etc/fstab文件中,永久挂载samba共享目录。
[root@jeven ~]# grep samba /etc/fstab
//192.168.3.157/share /samba/share cifs defaults,credentials=/etc/samba/smbur.txt,multiuser,sec=ntlmssp 0 0
挂载samba共享目录
mount -a
5.查看客户端的文件系统
查看samba客户端的文件系统,/samba/share目录已经成功挂载。
[root@jeven ~]# mount -a
[root@jeven ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs tmpfs 3.9G 16K 3.9G 1% /dev/shm
tmpfs tmpfs 3.9G 163M 3.8G 5% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 106G 103G 3.5G 97% /
/dev/sda1 xfs 1014M 278M 737M 28% /boot
/dev/mapper/centos-home xfs 1014M 35M 980M 4% /home
tmpfs tmpfs 793M 12K 793M 1% /run/user/42
tmpfs tmpfs 793M 0 793M 0% /run/user/0
overlay overlay 106G 103G 3.5G 97% /var/lib/docker/overlay2/fd50a66714358108e44dc1a14f0d8bdffc94985f13cec5ce7a046ce57295fb1a/merged
overlay overlay 106G 103G 3.5G 97% /var/lib/docker/overlay2/4dfc8bb698726775c15c6a9a13a83b7e2c40205907d6a8fd6bb8f1a225d3bc0b/merged
overlay overlay 106G 103G 3.5G 97% /var/lib/docker/overlay2/5416d09ee09287c946db83f95285788c50b99f3a7aa3bbf6f684575bb36df52a/merged
overlay overlay 106G 103G 3.5G 97% /var/lib/docker/overlay2/60c94259e4d74fffff425764a21380e86361707ff301eb99c9bfa337c6e230da/merged
overlay overlay 106G 103G 3.5G 97% /var/lib/docker/overlay2/cf7227761c12d4eeb511542064155b86dc5a359204cc5b221252eb03b5f952ef/merged
//192.168.3.157/share cifs 50G 19G 32G 37% /samba/share
五、Samba共享目录的权限测试
1.检查alice用户的权限
检查在/samba/share上,以alice用户访问,新建文件的权限是拒绝的。
root@jeven ~]# cd /samba/share/
[root@jeven share]# ls
group passwd
[root@jeven share]# touch aa.txt
touch: cannot touch ‘aa.txt’: Permission denied
[root@jeven share]#
2.kitty和jeven用户的访问权限
切换本地admin用户,以kitty和jeven这两个samba用户测试访问权限。
kitty和jeven用户都可以正常访问共享目录,也可以在共享目录中新建文件。
[root@jeven share]# su - admin
Last login: Sun Apr 16 19:06:55 CST 2023 on pts/2
[admin@jeven ~]$ cifscreds add -u kitty server001
error: Could not resolve address for server001
[admin@jeven ~]$ cifscreds add -u kitty 192.168.3.157
Password:
[admin@jeven ~]$ cd /samba/share/
[admin@jeven share]$ ls
group passwd
[admin@jeven share]$ touch kitty.txt
[admin@jeven share]$ ls
group kitty.txt passwd
[admin@jeven share]$ cifscreds update -u jeven 192.168.3.157
Password:
[admin@jeven share]$ ls
group kitty.txt passwd
[admin@jeven share]$ touch jeven.txt
[admin@jeven share]$ ls
group jeven.txt kitty.txt passwd
相关文章:

Linux系统之部署Samba服务
Linux系统之部署Samba服务 一、Samba服务介绍1.Samba服务简介2.NFS和CIFS简介3.Smaba服务相关包4.samba监听端口4.samba相关工具及命令 二、环境规划介绍1.环境规划2.本次实践介绍 三、Samba服务端配置1.检查yum仓库2.安装smaba相关软件包3.创建共享目录4.设置共享目录权限5.新…...
回顾产业互联网的发展历程,技术的支撑是必不可少的
从以新零售、全真互联网为代表的产业互联网的概念诞生的那一天开始,互联网的玩家们就一直都在寻找着它们的下一站。尽管在这个过程当中,遭遇到了很多的困难,走过了很多的弯路,但是,产业互联网的大方向,却始…...
关于gas费优化问题
关于gas费优化问题 首先我们先来看一下这段代码 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GasGolf{uint public total;//[1,2,3,4,5,100]function sum(uint[] memory nums) external{for(uint i 0;i<nums.length;i1){bool isEven nums[i] % 2…...

Linux——中断和时间管理(中)
目录 驱动中的中断处理 中断下半部 软中断 tasklet 工作队列 驱动中的中断处理 通过上一节的分析不难发现,要在驱动中支持中断,则需要构造一个 struct irqaction的结构对象,并根据IRQ 号加入到对应的链表中(因为 irq_des 已经在内核初始…...

嵌入式软件中常见的 8 种数据结构详解
目录 第一:数组 1、数组的应用 第二:链表 1、链表操作 2、链表的应用 第三:堆栈 1、堆栈操作 2、堆栈的应用 第四:队列 1、队列操作 2、队列的应用 第五:哈希表 1、哈希函数 2、哈希表的应用 第六&#…...
vue 修改当前路由参数并刷新界面
项目中经常用到的需求是在当前页面修改路由中的参数,并刷新页面。 我们只用this. r o u t e r . r e p l a c e 或者 t h i s . router.replace或者this. router.replace或者this.router.go是不行的,需配合下面的代码 方法一: this.$router.…...
视频处理之视频抽帧的python脚本
在计算机视觉研究中,处理视频的时候,往往需要将视频抽帧成图片。如果多个视频都存放在一个文件夹里,并且希望抽帧出来的图片,以一个视频对应一个文件夹的形式存放,可以用以下代码,抽帧频率可自己手动修改&a…...

【youcans 的 OpenCV 学习课】22. Haar 级联分类器
专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 【youcans 的 OpenCV 学习课】22. Haar 级联分类器 3. Haar 特征及其加速计算3.1 Haar 特征3.2 Haar 特征值的计算3.3 积分图像3.4 基于积分图像加速计算 Haar 特…...
如何避免知识盲区 《人生处处是修行》 读书笔记
如何避免知识盲区 多元化学习:不要只关注自己擅长的领域,应该尝试学习其他领域的知识,例如文学、艺术、科学等。 拓宽阅读:阅读不同领域的书籍、文章、博客等,可以帮助你了解更多的知识和观点。 参加培训和课程&…...
vue返回上一页自动刷新方式
再vue中,返回上一页时:如果页面是打开的状态,页面不会自动刷新,会保持着上次跳转的状态不更新; 原因:vue-router的切换不同于传统的页面切换,而是路由之间的切换,其实就是组件之间的…...
查询SERVER正在执行的SQL语句
--方法一 select * from master..sysprocesses SELECT distinct [Spid] session_Id, ecid, [Database] DB_NAME(sp.dbid), [User] nt_username, [Status] er.status, [Wait] wait_type, [Individual Query] SUBSTRING(qt.text, er.statement_start_offset / 2,…...
现代密码学--结课论文---《70年代公钥传奇》
摘要:在70年代之前,密码学主要被军方用于通信保护。密码学的主要研究也是由情报机构(GCHQ、NSA等)或IBM等企业运营的获得许可的实验室中进行。这时公众几乎无法获得密码学知识,直到由三位密码学家Hellman、Diffie和Mer…...
cf1348B phoenix and beauty(双指针滑动窗口的构造)
C 题面 Problem - 1348B - Codeforces 输出标准输出 凤凰网喜欢美丽的数组。如果一个数组中所有长度为k的子数组 的子数都有相同的总和,那么这个数组就是美丽的。一个数组的子数组是任何连续元素的序列。 凤凰网目前有一个数组a 的长度为n . 他想在他的数组中插入…...
一文读懂JAVA的hashCode方法:原理、实现与应用
目录 一、概述二、实现原理和重写规则三、如何重写hashCode方法3.1 Objects.hash()方法3.2 Apache HashCodeBuilder.3.3 Google Guava3.4 自定义哈希算法四、hashcode和equals的联系五、注意事项和建议5.1 注意事项5.2 建议六、总结一、概述 在Java中,每个对象都有一个hashCod…...
RocketMQ部署
一 安装mq 1.下载RocketMQ 本教程使⽤的是RocketMQ4.7.1版本,建议使⽤该版本进⾏之后的demo训练。 运⾏版:https://www.apache.org/dyn/closer.cgi?pathrocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip 源码:https://www.apache.org…...

43岁程序员,投了上万份简历都已读不回,只好把年龄改成40岁,这才有了面试机会,拿到了offer!...
40多岁找工作有多难? 一位43岁的程序员讲述了自己找工作的经历: 80年,大专,目前没到43周岁,年前被裁,简历上的年龄是42岁,两个多月投了上万份简历,99.5%是已读未回。后来改变策略把简…...
MySQL分区表相关知识总结
1.创建分区表: create table t(col11 int null, col22 …) engineinnodb partition by hash(col33) partitions 44; create table t(col11 int null, col22 …) engineinnodb partition by range(id) (partition p0 values less than (10), partition p1 values les…...

outlook邮箱pc/mac客户端下载 含最新版
新的 Outlook for Windows or mac 为 Outlook 应用带来了最新功能、智能辅助功能和新的新式简化设计。 你可以根据自己的风格定制它,并使用新的 Outlook for Windows/mac 执行更多操作! 览版,与我们一起开始旅程,并帮助我们塑造新…...
缓存雪崩、缓存穿透、缓存击穿分别是什么?如何解决?
缓存中存放的大多都是热点数据,目的就是从缓存中获取数据,而不用直接访问数据库,从而提高查询效率 缓存雪崩 概念 指缓存在同一时间大面积失效,后面的请求直接访问数据库,导致数据库短时间内压力过大而崩溃ÿ…...
VBA实战篇学习笔记02 Err错误处理
文章目录 专题VI 错误处理课时38 常见错误类型错误代码13 :类型不匹配错误代码91: 对象变量或者with变量未设置错误代码1004: 视具体错误类型而变化 课时39 Err错误处理On Error Resume Next :Resume语句:Resume Next语句:未知错误:Exit SubOn Error Goto 0 专题VI 错误处理 课…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...