centos 7 安装 samba

2023-05-16

centos 7 安装 samba

最近想在linux系统下开发C++程序,想用window的编辑器写代码,所以在centos 系统下安装了samba ,让window系统挂载centos 系统的共享的文件夹下,这样对于window来说就像是访问本地的磁盘一样,能通过window的编辑器对cenos 7 系统下的代码文件进行修改以及保存。所以整理了centos 7 系统下安装samba的过程,最后附上一个自动安装samba系统的shell脚本。

下面分了四部分

  1. cenots系统安装samba需要注意的点
  2. centos 安装的步骤
  3. centos 7 自动安装shell脚本
  4. 结语

cenots系统安装samba需要注意的点

  1. centos 需要关闭 selinux,不然window电脑无法正常访问centos 共享的文件夹
  2. samba 可以对访问的用户配置可读、可写的权限,如果没有配置对应的权限,例如配置为不可读的权限,window电脑将无法正常访
  3. centos 本质是linux系统,不是root 用户访问文件夹都会受到权限的管理;所以共享的文件夹也需要将权限给够,不然无法window电脑无法正常访问,会报权限不够,即使samba的配置权限已经给到了最大
  4. 上面都是关于文件权限的问题,window电脑想要访问到centos的共享文件夹是属于跨电脑的跨设备的访问,所以还需要考虑到centos的防火墙的配置以及本地window电脑的防火墙配置

centos 安装的步骤

提示:这里我们直接t通过 yum 安装

  1. 安装 samba 相关软件包
    这里建议先卸载 smaba 相关的软件,然后再安装samba 相关软件。不然有可能出现一些 samba 的命令用不了的问题
yum remove -y samba*
yum install -y samba*
  1. 关闭 selinux,这里我们通过修改配置文件永久关闭 selinux
    没有 sed 工具的可以yum 自行安装下或者通过vi 、vim 手动的配置文件进行修改
sed -i "s/SELINUX=enforcing/SELINUX=disable/g" /etc/selinux/config
#或者
vim /etc/selinux/config			将文件中的 "SELINUX=enforcing/" 替换成 “SELINUX=disable”

修改完成之后需要重启centos 使关闭 selinux 生效

shutdown -r now
  1. 修改 samba 配置
    通过修改smaba的配置文件进行配置
vim /etc/samba/smb.conf

打开文件后 将以下的内容添加到配置文件中去:
这里需要注意的是 这里的所有" shared "是你要添加的 samba 账户的名称,除了 “ path = /home/shared/ ”这里的 shared 为共享的文件夹名称。
这里的意思是将 /home/shared 文件夹作为共享文件夹,能访问的是 “shared” 用户,且权限为,可读、可写。

[shared]
        # 共享文件目录描述
        comment = Shared Directories
        # 共享文件目录
        path = /home/shared/
        # 是否允许guest访问
        public = no
        # 指定管理用户
        admin users = shared
        # 可访问的用户组、用户
        valid users = @shared
        # 是否浏览权限
        browseable = yes
        # 是否可写权限
        writable = yes
        # 文件权限设置
        create mask = 0777
        directory mask = 0777
        force directory mode = 0777
        force create mode = 0777

这里附上一张修改后的的该文件图片,方便没有接触过的小伙伴的理解
在这里插入图片描述

  1. 添加shamba 账户
    这里通过命令添加,需要注意的是创建samba用户之前,必须先确保有一个同名的Linux用户,否则samba用户会创建失败
    smbpasswd 为samba的命令,如果提示无该命令或者无法正常执行的话 yum remove -y samba* 掉再 重新 yum install -y samba*
useradd shared
smbpasswd -a shared
下面需要手动输入两次密码确认
  1. centos 防火墙开放 samba 需要用到的端口
systemctl start firewalld.service            一行对应一条命令不要傻傻全部复制过去
firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
firewall-cmd --zone=public --add-port=137/udp --permanent
firewall-cmd --zone=public --add-port=138/udp --permanent

firewall-cmd --reload
ystemctl restart firewalld.service
  1. 添加 samba 共享账户下的 共享目录权限
chown 777  /home/shared/
  1. 重启 samba 服务
systemctl restart smb nmb
  1. 添加开机自启动
    如果不加入开机自启动,有可能重启之后得手动开启 samba 服务,不忍会出现wndiw无法访问
systemctl enable  smb nmb
  1. 到这里的话,centos 的所有步骤都完成了,接下来就是 window 下访问 centos samba 共享的文件夹。
    window 电脑 通过 “Win” + “R” 调出程序款,输入\IP地址\共享文件夹的名称
    在这里插入图片描述
    在这里插入图片描述

  2. 成功访问到了,结束啦!


centos 7 自动安装shell脚本

Tips

  1. 脚本执行到添加 samba账户 时需要手动输入账号密码,
  2. 若是想创建其他的 samba 账户,将脚本中的变量修改成自己想要的账户就行 sambaUser=自己想要的账户名称
  3. 脚本没有写死了重启,全部完成之后需要手动重启
  4. 其它的不废话,脚本注释都有。直接上脚本。

#!/bin/bash
#author:LED_H
#Time:2020.07.10

sambaUser=shared
sambaPath=/etc/samba


#修改samba 配置文件
modifySambaConf()
{
	echo -e "[${sambaUser}]" >> ${sambaPath}/smb.conf
	echo -e "\t# 共享文件目录描述" >> ${sambaPath}/smb.conf
	echo -e "\tcomment = Shared Directories" >> ${sambaPath}/smb.conf
	echo -e "\t# 共享文件目录" >> ${sambaPath}/smb.conf
	echo -e "\tpath = /home/${sambaUser}/" >> ${sambaPath}/smb.conf
	echo -e "\t# 是否允许guest访问" >> ${sambaPath}/smb.conf
	echo -e "\tpublic = no" >> ${sambaPath}/smb.conf
	echo -e "\t# 指定管理用户" >> ${sambaPath}/smb.conf
	echo -e "\tadmin users = ${sambaUser}" >> ${sambaPath}/smb.conf
	echo -e "\t# 可访问的用户组、用户" >> ${sambaPath}/smb.conf
	echo -e "\tvalid users = @${sambaUser}" >> ${sambaPath}/smb.conf
	echo -e "\t# 是否浏览权限" >> ${sambaPath}/smb.conf
	echo -e "\tbrowseable = yes" >> ${sambaPath}/smb.conf
	echo -e "\t# 是否可写权限" >> ${sambaPath}/smb.conf
	echo -e "\twritable = yes" >> ${sambaPath}/smb.conf
	echo -e "\t# 文件权限设置" >> ${sambaPath}/smb.conf
	echo -e "\tcreate mask = 0777" >> ${sambaPath}/smb.conf
	echo -e "\tdirectory mask = 0777" >> ${sambaPath}/smb.conf
	echo -e "\tforce directory mode = 0777" >> ${sambaPath}/smb.conf
	echo -e "\tforce create mode = 0777" >> ${sambaPath}/smb.conf

}

#安装 ssamba 
authInstallSamba()
{
	#永久关闭 selinux
	sed -i "s/SELINUX=enforcing/SELINUX=disable/g" /etc/selinux/config

	#等后面全部弄完之后需要重启才能生效
	
	#
	yum remove -y samba*
	yum install -y samba*

	#备份原配置文件
	cp ${sambaPath}/smb.conf ${sambaPath}/smb.conf.bak

	#修改配置文件
	modifySambaConf

	#创建samba用户之前,必须先确保有一个同名的Linux用户,否则samba用户会创建失败
	useradd ${sambaUser}

	#添加shamba 账户
	smbpasswd -a ${sambaUser}
	
	#这里需要手动改输入samba账户的密码

	#开启防火墙
	systemctl start firewalld.service

	#防火墙端口开放
	firewall-cmd --zone=public --add-port=139/tcp --permanent
	firewall-cmd --zone=public --add-port=445/tcp --permanent
	firewall-cmd --zone=public --add-port=137/udp --permanent
	firewall-cmd --zone=public --add-port=138/udp --permanent

	#防火墙重新加载
	firewall-cmd --reload

	#重启防火墙(可以不重启)
	ystemctl restart firewalld.service

	#添加 samba 共享账户下的 共享目录权限
	chown 777  /home/${sambaUser}/
	
	#重启
	systemctl restart smb nmb
	
	#加入开机自启动
	systemctl enable  smb nmb

	#重启生效
	#shutdown -r now
}


#这里开始
authInstallSamba
echo "需要手动重启,才能生效selinux"


结语

创作不易,希望有帮助的小伙伴点个赞,加个关注,后面会分享一些C++的知识。
有一些错误或者不懂可以评论区留言,一起讨论下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos 7 安装 samba 的相关文章

  • 无法获取 Flask 应用程序中设置的环境变量

    我尝试在 CentOS 中将敏感信息设置为环境变量 并将它们传递给主文件中使用的 Flask 配置文件 即init py 但这没有用 Flask 应用程序在 Apache 下运行 我首先以 root 用户身份编辑 etc environme
  • 在 Linux 中向当前日期添加 x 秒

    我这里有两台 Linux CentOS 6 0 机器 我需要在当前日期时间上添加 或删除 5 秒 最后 我的两台机器都会有5秒的差距 一台时间正确 另一台或多或少有5秒 我知道我可以使用以下命令更改日期 date s DD MMM YYYY
  • 将 apply 的管道输出传送到 centos 中的记录

    我正在尝试自动化 websocket 客户端的一些测试 该客户端根据命令连接到服务器 该服务器基本上是一个语音到文本引擎 客户端支持来自麦克风的音频流 这样人们就可以实时录制自己的声音并将其传输到引擎 我在 centos 虚拟机中运行客户端
  • 无法在 CentOS 7 上启动 postgresql 服务

    无法在 CentOS 7 上启动 postgresql 9 5 我关注了这个页面 https wiki postgresql org wiki YUM Installation https wiki postgresql org wiki
  • 在centos 6.4上安装numpy&scipy

    我在虚拟环境中工作 安装 numpy 和 scipy 时遇到问题 据我了解 在使用 scipy 之前我必须完全安装 numpy 但是我在安装 numpy 时遇到了问题 I usedpip install numpy并将 numpy 安装到我
  • Centos 上的 MSBuild 返回“未找到导入的项目“/Microsoft.Cpp.Default.props””

    我正在尝试在 CentOS 中构建 VS 项目 我通过安装 dotnet sdk 2 2yum install dotnet sdk 2 2 执行时dotnet msbuild myproj vcxproj I get Microsoft
  • 从 CentOS 7 或 RHEL 7 中完全删除 MariaDB 或 MySQL

    我在 CentOS 7 上安装了 MariaDB 但我在某些配置上遇到了一些问题 现在它完全配置错误 因此 我想用 yum remove mariadb mariadb server 删除MariaDB 然后用 yum install ma
  • Python - 什么时候可以使用 os.system() 发出常见的 Linux 命令

    从另一个线程中分离出来 什么时候适合使用 os system 发出 rm rf cd make xterm ls 等命令 考虑到上述命令有模拟版本 make 和 xterm 除外 我假设使用这些内置 python 命令而不是使用 os sy
  • PHP 5.3.8 上的 Mime 类型检测失败并显示 fileinfo

    我在 CentOS 服务器上安装了 PHP 5 3 8 时 无法使用 fileinfo 检测简单 PNG 文件的 mime 类型 问题 基本上 如果我有以下代码 如您所见 该文件是 PNG 图像 文件的头字节已被检查并
  • 如何从 Mac OS X 交叉编译到 Linux x86?

    我正在运行 Mac OS X 10 5 8 并希望使用 GCC 4 1 2 为目标 CentOS 5 3 进行编译 我怎么能 编译GCC 4 1 2工具链及相关工具 使用该工具交叉编译目标 CentOS 5 3 任何帮助是极大的赞赏 最简单
  • Docker CentOS 映像不会自动启动 httpd

    我正在尝试使用 Apache 和 PHP 程序运行一个简单的 Docker 映像 如果我跑的话效果很好 docker run t i p 80 80 my httpd bin bash 然后手动启动Apache service httpd
  • 在哪里可以找到 PHP 的错误日志文件?

    在哪里可以找到错误日志文件 我需要检查它们以解决安装后显示的内部服务器错误suPHP https wiki archlinux org title SuPHP 您可以使用lsof https en wikipedia org wiki Ls
  • 如何找出apache上次重启的时间? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个 VPSkloxo控制面板已安装 我在用CentOS 5 8 32 bit 我今天重新启动了 Apache 但忘记了启动时间 知道确切的时间非
  • PCRE 库版本太旧

    Bug Genie 3 需要 PCRE 库 8 0 或更高版本 你有 版本 7 8 2008 09 05 将您的系统更新到最新版本 你常用的来源 在我查看问题并尝试通过以下步骤更新我的 PCRE 库后 wget the latest sou
  • Bash:更新文件中的变量

    我知道这是一个简单的答案 在找到答案之前我可能可以继续在谷歌上进行挖掘 但我的日程很紧 我希望能得到一个轻松的答复 我需要在安装时更新 ifcfg eth0 中的变量 换句话说 这就是需要发生的事情 以下变量需要更改 ONBOOT no B
  • 如何在Linux中打开端口[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经安装了 Web 应用程序 该应用程序在 RHEL centOS 上的端口 8080 上运行 我只能通过命令行访问该机器 我尝试从我的
  • Composer 已安装,但获取 /usr/bin/env: php: No such file or directory

    在 CentOS 7 上 我安装了 PHP 7 1 然后我安装了作曲家 cd tmp curl sS https getcomposer org installer php71 gt used php71 instead of php ph
  • Monkeyrunner/jython 中未找到 JDBC 驱动程序错误

    我需要在中插入一些东西DB 我在用着JDBC as a connector jython the script mysql数据库和脚本正在运行CentOS 我的代码看起来像这样 from com android monkeyrunner i
  • httplib.BadStatusLine: '' 在 Linux 上,但在 Mac 上则不然

    这个错误已经困扰我几个小时了 我决定编写一个单独的项目 只是为了看看我是否可以复制它 而且我可以 但只能在我的服务器上复制 这适用于我的 Mac Mac OSX El Capitan 10 11 6 服务器 CentOS 7 2 1511
  • bdist_rpm 从 Ubuntu 到 CentOs

    我们在 Ubuntu Mac 上进行开发 并将 RPM 部署到 CentOS 这是设置 不能更改太多 问题是 当从 rpm 安装时 软件包会转到 usr local lib python2 7 dist packages 这是 Ubuntu

随机推荐

  • Windows10 Xrdp远程桌面连接ubuntu 20.04,一步到位!

    https blog csdn net avinswang article details 93601312 utm medium 61 distribute pc relevant none task blog BlogCommendFr
  • 远程桌面无响应解决方案

    问题1 mstsc链接远程桌面后 发现只有桌面背景 xff08 桌面图标不见了 xff0c 任务栏不见了 xff0c 鼠标无处可点 xff09 问题2 远程桌面卡住了 问题分析 针对于问题1 xff0c 是因为关闭了explorer exe
  • 公用网络切换为专用网络的详细步骤

    win10连接的网络显示为公用网络 xff0c 一般来说公用网络的安全性不高 xff0c 专用网络安全性会比公用网络要高 具体方法如下 1 我的电脑安装的是win10系统 xff0c 网络状态为 xff1a 公用网络 2 把Windows1
  • mysql使用SSL连接配置学习(一)

    参考 xff1a https www jb51 net article 100432 htm https www cnblogs com mysql dba p 7061300 html 一 SSL介绍 SSL xff08 Secure S
  • 富文本回显

    今天遇了富文本的回显问题 xff0c 查了好多网页 xff0c 最后总结回显最简单方法 xff0c 留个纪念 lt c forEach items 61 34 bidNoticeList 34 varStatus 61 34 status
  • 弹出详细信息窗口

    lt DOCTYPE html PUBLIC 34 W3C DTD HTML 4 01 Transitional EN 34 gt lt html gt lt head gt lt meta charset 61 34 GB 2312 34
  • 字符串中特殊字符处理

    public String htmlReplace String str str 61 str replace 34 amp ldquo 34 34 34 str 61 str replace 34 amp rdquo 34 34 34 s
  • Android开发环境配置

    环境为jdk11 43 android studio2021 jdk11的安装 xff1a 参考https blog csdn net qq 22136439 article details 103295019 注意 xff1a 1 jdk
  • java中文字符乱码编码转换大全

    System out println new String myFileName getBytes 34 gbk 34 System out println new String myFileName getBytes 34 utf 8 3
  • java实现打印套打功能

    package test import java awt print import java awt 实现套打 xff0c 把套打的格式当成一张图片 xff0c 将要填入的数据按其在图片在坐标来定位 public class PrintTe
  • oracle中not in的优化

    ORACLE中NOT IN 的替代 http myjcwy iteye com blog 553563 典型的查询方式为 xff1a SELECT TITLE FROM BOOKSHELF WHERE TITLE NOT IN SELECT
  • Visual Stdio 中的error C2001: 常量中有换行符

    error C2001 常量中有换行符 问题 xff1a 使用Visual Stdio xff0c cout中文的时候 xff0c 有的时候可以正常编译并运行 xff0c 但是有的时候会出现error C2001 常量中有换行符 出现err
  • oracle实现每天定时执行一个计划任务

    http www shangxueba com jingyan 1614101 html oracle实现每天定时执行一个计划任务 创建测试表 SQL gt create table a a date 表已创建 创建一个自定义过程 SQL
  • Spring Security配置访问权限在登录页循环并报错302

    事情是这样的 xff0c 在学习Spring Security框架时 xff0c 使用框架默认的登录页面 xff0c 没有任何问题输入正确的账户和密码后都能登录 xff0c 但是将登录页面换为自定义的页面后就无法登录了 如下 xff1a 密
  • .net core基于Oauth2+jwt两种方式实现身份认证(附单点登录)

    引用地址 xff1a net core基于Oauth2 43 jwt两种方式实现身份认证 附单点登录 cslx5zx5的博客 CSDN博客 net core oauth2 基于 net core 3 1微服务架构的SSO单点登录实战 本文所
  • wordpress中文网站代码下载

    wordpress下载中文网站代码 wordpress网站 https cn wordpress org 下载各个中文版本的 xff1a 提示 xff1a 不用用积分去下载了 方法 xff1a 登录网站 xff1a
  • 源码编译装redis

    源码编译装redis 1 下载包 span class token punctuation span root 64 ZZQVM1 span class token punctuation span span class token com
  • I2C协议

    文章目录 一 什么是I2C xff1f 二 物理层与协议层1 物理层 xff08 1 xff09 I2C总线 xff1a xff08 2 xff09 从地址 xff1a xff08 2 xff09 三种传输模式 2 协议层 xff08 1
  • C++智能指针

    文章目录 前言shared ptrunique ptrweak ptr使用智能指针安全吗 xff1f 前言 下面简单的概括了 3中智能指针的在使用时候需要注意的一些地方 xff0c 三种智能指针在离开其作用域之后都会被自动释放 xff0c
  • centos 7 安装 samba

    centos 7 安装 samba 最近想在linux系统下开发C 43 43 程序 xff0c 想用window的编辑器写代码 xff0c 所以在centos 系统下安装了samba xff0c 让window系统挂载centos 系统的