CentoOS 7部署Samba

文章目录

      • (1)Samba概述
      • (2)安装Samba
      • (3)启动和管理Samba服务
      • (4)查看Samba进程
      • (5)介绍Samba配置文件
      • (6)修改Samba配置文件
      • (7)添加和删除Samba用户
      • (8)连接Samba共享
      • (9)Samba详细示例
      • (10)注意事项

(1)Samba概述

Samba是一个用于在Linux和Windows之间传输或共享文件的文件服务器。它采用客户端-服务器(C/S)模式工作,并使用UDP和TCP端口137、138、139和445。Samba可以用于搭建局域网文件服务器,方便共享资源,也可以用于共享打印机。

(2)安装Samba

在安装Samba服务之前,需要确认防火墙是否关闭并且iptables是否开启。可以使用以下命令检查防火墙状态:

[root@localhost ~]# systemctl status firewalld.service

如果防火墙处于运行状态,可以使用以下命令关闭防火墙:

[root@localhost ~]# systemctl stop firewalld.service

检查系统是否存在samba

  • 使用以下命令检查是否已安装Samba软件包:rpm -aq | grep samba
  • 使用以下命令查看可用的Samba版本:yum list all | grep samba
  • 使用以下命令通过yum安装Samba:yum -y install samba

接下来,使用以下命令安装Samba服务:

[root@localhost ~]# yum -y install samba

(3)启动和管理Samba服务

可以使用以下命令来启动、重启、停止和设置开机启动Samba服务:

systemctl start smb    # 开启Samba服务
systemctl restart smb  # 重启Samba服务
systemctl stop smb     # 停止Samba服务
systemctl enable smb   # 设置Samba服务开机启动

(4)查看Samba进程

可以使用以下命令查看Samba服务所监听的端口以及相关进程:

[root@localhost ~]# netstat -tnap | grep smb

如果需要查看所有TCP进程,可以使用以下命令:

[root@localhost ~]# netstat -tnlp

(5)介绍Samba配置文件

配置项说明
workgroup设置Samba服务所属的工作组或域
server string设置Samba服务器的注释或介绍
log file定义Samba日志文件的最大容量
security设置用户访问Samba服务器的验证方式
passdb backend设置用户后台的方式
printing设置Samba共享打印机的类型
printcap name设置共享打印机的配置文件
load printers设置是否在启动Samba时共享打印机
cups options设置CUPS打印选项
共享名称自定义共享的名称
comment对该共享的描述
path共享目录的路径
browseable指定该共享是否可以浏览
writable指定该共享路径是否可写
write list允许写入该共享的用户或组
available指定该共享资源是否可用
public指定该共享是否允许guest账户访问
guest ok与public具有相同的作用
admin users指定该共享的管理员
valid users指定允许访问该共享资源的用户
create mask设置用户创建文件的权限掩码
directory mask设置用户创建文件夹的权限掩码
veto files禁止上传的文件类型
vfs object载入用于回收站功能的模块
recycle:repository指定该共享文件夹的回收站目录
recycle:keeptree指定是否按删除时的目录结构存放
recycle:versions指定是否区分同名文件的版本
recycle:maxsize指定回收站目录的大小限制
recycle:exclude指定不放入回收站的文件类型
recycle:noversions指定覆盖同名文件的文件类型

注意事项

  • 回收站文件夹的用户和用户组设置应与共享文件夹的设置一致,以确保被删除的文件可以保存到回收站文件夹
  • 如果回收站的maxsize设置为0,需要手动删除回收站中的文件,可以使用计划任务定期清理过期文件
  • 每个共享文件夹应设置一个单独的回收站文件夹,以避免同名文件覆盖和方便管理
  • 创建用户时,如果需要在共享中具有写入权限,应同时将用户加入相应的写入权限组
  • 如果在Samba共享中无法获得写入权限,可能是SELinux导致的问题,可以检查SELinux的状态是否为permissive(宽松模式)

Samba配置文件中与打印机相关的参数

配置项说明
printing设置Samba共享打印机的类型,支持的打印系统有:bsd、sysv、plp、lprng、aix、hpux、qnx
printcap name设置共享打印机的配置文件
load printers设置是否在启动Samba时就共享打印机
cups options设置CUPS打印选项,默认为raw,也可以设置为rawlpd或rawlp

说明:

  • printing = cups: 设置Samba共享打印机的类型为CUPS。CUPS是一种常见的打印系统,用于管理打印任务和打印机。
  • printcap name = cups: 设置共享打印机的配置文件为CUPS。CUPS使用/etc/printcap文件来定义打印机的属性和配置。
  • load printers = yes: 设置是否在启动Samba时共享打印机。当设置为yes时,Samba将加载系统中的打印机并允许访问。
  • cups options = raw: 设置CUPS选项为raw。这个选项指定打印数据传输的方式为原始数据,不进行任何处理或转换。

(6)修改Samba配置文件

Samba的主配置文件位于/etc/samba/smb.conf。可以使用文本编辑器(如vi)打开该文件进行修改:

[root@localhost ~]# vi /etc/samba/smb.conf

在配置文件中,可以添加或修改共享配置。例如,要创建一个名为test的共享,可以在配置文件中添加以下内容:

[test]
    comment = 共享test
    path = /data/test
    create mask = 0775
    directory mask = 0775
    write list = @test josh

在添加共享之前,需要先创建共享文件夹,并设置相应的权限和归属组。可以按照以下步骤进行操作:

[root@localhost ~]# mkdir /data/test
[root@localhost ~]# groupadd test
[root@localhost ~]# chmod 755 /data/test
[root@localhost ~]# chown root:test /data/test

请注意,所有的设置和修改都需要重启Samba服务才能生效。

(7)添加和删除Samba用户

可以使用pdbedit命令来添加和删除Samba用户。

1、pdbedit命令选项:

命令说明
pdbedit –a username新建Samba账户,username为新用户的用户名。
pdbedit –x username删除Samba账户,username为需要删除的用户的用户名。
pdbedit –L列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv列出Samba用户列表的详细信息,包括用户名、密码、组成员等。
pdbedit –c “[D]” –u username暂停该Samba用户的账号,username为需要暂停的用户的用户名。
pdbedit –c “[]” –u username恢复该Samba用户的账号,username为需要恢复的用户的用户名。

2、可以使用以下命令列出所有的Samba用户

[root@localhost ~]# pdbedit -L

3、要添加一个Samba用户,还可以按照以下步骤进行操作:

[root@localhost ~]# useradd josh
[root@localhost ~]# smbpasswd -a josh
New SMB password:
Retype new SMB password:
Added user josh.

4、要删除一个Samba用户,可以使用以下命令:

[root@localhost ~]# pdbedit -x josh

(8)连接Samba共享

在Windows系统中,可以通过映射网络驱动器的方式连接Samba共享。在资源管理器中,输入以下地址进行连接:

\\192.168.224.139\test

然后输入创建的Samba账户的用户名和密码即可完成连接。

在这里插入图片描述

(9)Samba详细示例

通过一个示例来演示如何使用Samba配置文件中的参数。假设我们有一个名为Financial_Dept的共享文件夹,以下是对应的Samba配置:

[Financial]
    comment = Financial_Sharing
    path = /data/Financial
    write list = @cw root cw_b @cw_r Josh
    create mask = 0775
    directory mask = 0775
    valid users = @cw
    vfs object = recycle
    recycle:repository = .deleted/%U
    recycle:keeptree = Yes
    recycle:versions = Yes
    recycle:maxsize = 0
    recycle:exclude = *.tmp|*.mp3
    recycle:noversions = *.doc

下面是对配置中各个参数的说明:

1、基本配置说明:

  • [Financial]: 共享名称,可以自定义。

  • comment = Financial_Sharing: 对该共享的描述,可以任意字符串。

  • path = /data/Financial: 共享目录的路径。

  • browseable = yes/no: 指定该共享是否可以浏览。

  • writable = yes/no: 指定该共享路径是否可写。

  • write list = @cw root cw_b @cw_r Josh: 允许写入该共享的用户或组。可以是组cw,用户Josh,以及其他用户和组的组合。

  • available = yes/no: 指定该共享资源是否可用。

  • public = yes/no: 指定该共享是否允许guest账户访问。

  • admin users = : 指定该共享的管理员(对该共享具有完全控制权限)。

  • valid users = @cw: 指定允许访问该共享资源的用户。在这个例子中,只允许组cw的用户访问。

  • create mask = 0775: 用户创建文件的权限掩码,按照0775设置。

  • directory mask = 0775: 用户创建文件夹的权限掩码,按照0775设置。

  • veto files = /**.mp3/**.mp4/**.rmvb/**.wma/**.exe/**.bat/**.dll/**.avi/*.rar: 禁止上传的文件类型。

  • vfs object = recycle: 载入用于回收站功能的模块recycle.so

    2、回收站配置说明:

  • recycle:repository = .deleted/%U: 指定该共享文件夹的回收站目录,使用%U按登录的用户名分开存放。

  • recycle:keeptree = Yes: 指定是否按删除时的目录结构存放。

  • recycle:versions = Yes: 指定是否区分同名的文件,设置为Yes表示不覆盖。

  • recycle:maxsize = 0: 指定回收站目录的大小,设置为0表示不限制。

  • recycle:exclude = *.tmp|*.mp3: 指定不放入回收站的文件类型。

  • recycle:noversions = *.doc: 指定覆盖同名文件的文件类型。

在配置好以上参数后,我们可以通过以下命令查看共享文件夹的回收站目录:

[root@gitlab24 ~]# ls -la /data/Financial/

如果一切配置正确,应该能看到一个名为.deleted的文件夹,这就是回收站目录。

需要注意的是,回收站文件夹的用户和用户组设置应与共享文件夹的设置一致,以确保被删除的文件可以保存到回收站文件夹。

此外,如果recycle:maxsize设置为0,需要手动删除回收站中的文件。

定期删除回收站

可以使用计划任务定期清理过期文件,例如在/etc/crontab中添加以下内容:

30 8 * * * root find /samba/deleted/ -mtime +30 -exec rm -rf {} \;

以上是使用示例,展示了如何根据具体需求配置Samba共享文件夹的参数。根据实际情况,您可以根据需要进行相应的修改和调整。

(10)注意事项

1、创建用户后未同时加入写入权限组,后续加组示范:

  1. 创建用户:useradd josh
  2. 添加Samba密码:smbpasswd -a josh
  3. 将用户加入写入权限组:gpasswd -a josh cp
    在共享中,Samba用户"josh"创建的文件的权限将是组"josh"。

如果重新加入组,没有写入权限,可以通过以下方式进行纠正:

使用vipw命令直接修改用户的默认组:

在这里插入图片描述

  1. 执行命令:vipw
  2. 将用户行中的第二个组ID修改为"cp"组的ID(例如将josh:x:1003:1003中的第二个"1003"修改为"1009",表示将用户"josh"的默认组修改为"cp"组)。
  3. 保存并退出编辑器(:wq)。
    修改后,重新启动Samba服务以使更改生效。

2、创建用户时同时加入写入权限组:

  1. 创建用户并指定写入权限组:useradd -g cp josh
  2. 添加Samba密码:smbpasswd -a josh

3、如果在设置好Samba共享后,连接正常但没有写入权限

  1. 可能是由于SELinux导致的。您可以检查SELinux的状态是否为"permissive"(宽松)模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/241278.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

车联网助力自动驾驶发展

单车智能决策难点 芯片,成为自动驾驶的最大瓶颈 自动驾驶对芯片算力要求极高。要求自动驾驶处理器在每秒能够处理数百万亿次的计算; 自动驾驶对计算的实时性要求极高。任何一点时延,都有可能造成车毁人亡; 对低能耗有极大的…

气象监测设备的内容介绍

气象监测设备是基于无线通讯、物联网感知等技术而研发的多功能智能气象设备,用于监测二氧化碳、气压、雨量、风速、风向、光照度、空气温湿度、土壤温湿度、PM2.5/PM10等气象参数,通过无线通讯方式将数据传输到环境监控云平台上,以便相关人员…

2023快速上手新红利项目:短剧分销推广CPS

短剧分销推广CPS是一个新红利项目,对于新手小白来说也可以快速上手。 以下是一些建议,帮助新手小白更好地进行短剧分销推广CPS: 学习基础知识:了解短剧的基本概念、制作流程和推广方式。了解短剧的市场需求和受众群体&#xff0c…

【git教程】

目录 git与SVN的区别:集中式与分布式的区别Windows上安装Git创建版本库/仓库(repository)将文件添加到repository报错处理 查看仓库的状态版本回退工作区和暂存区管理和修改撤销修改删除文件远程仓库添加远程仓库警告解除本地和远程的绑定关系…

Windows环境提示“‘mysql‘ 不是内部或外部命令,也不是可运行的程序或批处文理件” 简易记录

在Windows环境下使用DOS命令窗登入MYSQL,提示“mysql 不是内部或外部命令,也不是可运行的程序或批处理文件。” 这意味着系统无法找到 mysql.exe可执行文件,这是因为 MySQL 没有正确安装或未添加到系统PATH环境变量中所致。 处理方法&#x…

蝴蝶Butterfly 数据集VOC+yolo-2000张(labelImg标注)

蝴蝶被誉为“会飞的花朵”,是一类非常美丽的昆虫。蝴蝶大多数体型属于中型至大型,翅展在15~260毫米之间,有2对膜质的翅。体躯长圆柱形,分为头、胸、腹三部分。体及翅膜上覆有鳞片及毛,形成各种色彩斑纹。今天要介绍的是…

GitHub Copilot - Elasticsearch 和 MySQL 单表查询耗时比对

当单表数据库超过百万后,数据库 like %xxx% 查询明显变慢,为了对比 Elasticsearch 的效果,将百万级的测试数据导入到 Elasticsearch 中对比看看效果。导入和查询 Elasticsearch 的过程完全通过 GitHub Copilot Chat 辅助编码。 Elasticsearc…

智能客服的应用——政务领域

#本文来源清华大学数据治理研究中心政务热线数智化发展报告 ,如有侵权,请联系删除。 面对地方政务热线发展所面临的挑战,数智化转型已经成为了热线系统突破当前发展瓶颈、实现整体提质增效的关键手段。《意见》中也明确指出,政务…

任意文件读取漏洞

使用方法php://filter/readconvert.base64-encode/resourcexxx 任意文件读取漏洞 php://filter/readconvert.base64-encode/resourceflag 在url后边接上 以base64的编码形式 读取flag里面的内容 php://filter/readconvert.base64encode/resourceflag 用kali来解码 创建一个文…

Linux安装Halo(个人网站)

项目简介 1.代码开源:Halo 的项目代码开源在 GitHub 上且处于积极维护状态,截止目前已经发布了 109 个版本。你也可以在上面提交你的问题或者参与代码贡献。2.易于部署:推荐使用 Docker 的方式部署 Halo,便于升级,同时避免了各种环境依赖的问…

C++刷题 -- 哈希表

C刷题 – 哈希表 文章目录 C刷题 -- 哈希表1.两数之和2.四数相加II3.三数之和(重点) 当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法; 1.两数之和 https://leetcode.cn/problems/two…

Unity中实现ShaderToy卡通火(原理实现篇)

文章目录 前言一、我们在片元着色器中,实现卡通火的大体框架1、使用 noise 和 _CUTOFF 判断作为显示火焰的区域2、_CUTOFF : 用于裁剪噪波范围的三角形3、noise getNoise(uv, t); : 噪波函数 二、顺着大体框架依次解析具体实现的功能1、 uv.x * 4.0; : …

如何进行产品数据分析一——移动应用APP分析方法

如何进行产品数据分析 产品的定义产品分析的构成移动应用APP分析方法AARRR1.流量拆解DAUMAU活跃率拆解流量深度 2.流量引入反作弊算法识别系统(量)拉新质量评估体系(质)渠道价值评估体系(值) 3.流量输出 产…

[MySQL]事务原理之redo log,undo log

🌈键盘敲烂,年薪30万🌈 目录 一、log日志文件 📕 事务执行流程 📕 redo log 📕 undo log 二、总结 👀再来一遍ACID 1. 原子性:原子性确保事务作为一个整体执行,要么…

D4140交流插座电器漏电断路器的低功耗控制芯片,内置桥式整流器漏电灵敏度可调,采用SOP8和DIP8 的封装形式

D4140 是一种用于交流插座电器漏电断路器的低功耗控制器。这些设备可以检测到接地的危险电流路径,例如设备掉进水中。在发生有害或致命的电击之前,断路器会断开线路。内置有整流桥,齐纳管稳压器,运算放大器,电流基准&a…

【数学建模美赛M奖速成系列】报名流程与论文的基本格式

数学建模美赛M奖速成系列 写在前面报名方式1.官网直接报名2.赛氪软件辅助报名 论文的基本格式摘要模型建立模型求解结果分析与检验模型评价 竞赛的基本注意事项1. 选题后查找资料2. 写作能力和编程能力 历年优秀论文标题与摘要简明扼要善用图表 最后 写在前面 最近&#xff0c…

【Docker】学习笔记(一)三剑客之 docker engine仓库、镜像与容器的基本操作

docker engine安装 ubuntu20.04安装docker教程 docker核心架构 镜像(image) 一个镜像就代表一个软件服务(ubuntu镜像、mysql镜像、redis镜像、mq镜像)只读 远程中心仓库(repository) 中心仓库用来集中存储…

5.1CPU的功能和结构

CPU的功能 1.指令控制。 完成取指令、分析指令和执行指令的操作,即程序的顺序控制。 ⒉操作控制。 一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制…

微信小程序:上传图片到别的域名文件下

效果 wxml <!-- 上传照片 --> <view class"addbtn"><view classpic name"fault_photo" wx:for"{{imgs}}" wx:for-item"item" wx:key"*this"><image classweui-uploader_img src"{{item}}"…

程序员必须知晓的11个C++要点-供大家学习研究参考

要点汇集C书中或网站上无法找到的&#xff0c;如&#xff1a;指向成员的指针&#xff0c;这是许多资料中都不愿提到的地方&#xff0c;也是经常出错的地方。希望对大家学习研究有帮助。 要点1: <iostream.h> 还是 <iostream>? 要点2&#xff1a;用引用传递参数时…