1、概述:

  1987 年,微软公司和英特尔公司共同制定了 SMB(Server Messages Block,服务器消息 块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间 共享文件变得越来越简单。到了 1991 年,当时还在读大学的 Tridgwell 为了解决 Linux 系统 与 Windows 系统之间的文件共享问题,基于 SMB 协议开发出了 SMBServer 服务程序。这是 一款开源的文件共享软件,经过简单配置就能够实现 Linux 系统与 Windows 系统之间的文件 共享工作。当时,Tridgwell 想把这款软件的名字 SMBServer 注册成为商标,但却被商标局以 SMB 是没有意义的字符而拒绝了申请。后来Tridgwell 不断翻看词典,突然看到一个拉丁舞蹈 的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是 Samba 服务程序的名字由此诞生。 Samba 服务程序现在已经成为在 Linux 系统与 Windows系统之间共享文件的最佳选择。

Samba 服务程序的配置方法与之前讲解的很多服务的配置方法类似,首先需要先通过 Yum 软件仓库来安装 Samba 服务程序(Samba 服务程序的名字也恰巧是软件包的名字):

yum install  samba

安装好Samba后,了解Samba 服务程序中的参数以及作用,配置文件在/etc/samba/smb.conf如下表:

2、配置共享资源

  Samba 服务程序的主配置文件与前面学习过的 Apache 服务很相似,包括全局配置参数和 区域配置参数。全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资 源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效。创建共享资源的 方法很简单,只要将表 12-2 中的参数写入到 Samba 服务程序的主配置文件中,然后重启该服务即可。

  第1步:创建用于访问共享资源的账户信息。

      在 RHEL 7 系统中,Samba 服务程序默认使用的是用户口令认证模式(user)。这种认证模式可以确保仅让有密码且受信任的用户访问 共享资源,而且验证过程也十分简单。不过,只有建立账户信息数据库之后,才能使用用户口 令认证模式。另外,Samba 服务程序的数据库要求账户必须在当前系统中已经存在。pdbedit 命令用于管理 SMB 服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。 pdbedit 命令中使用的参数以及作用如表 12-3 所示:

补充:-c  "[D]"  -u   username  :暂停该Samba用户的账号。

   -c  "[]"  -u   username  :恢复该Samba用户的账号。

  第2步:创建用于共享资源的文件目录。

      在创建时,不仅要考虑到文件读写权限的问题,而且由于/home 目录是系统中普通用户的家目录,因此还需要考虑应用于该目录的SELinux 安全 上下文所带来的限制。在前面对 Samba 服务程序配置文件中的注释信息进行过滤时,这些过 滤的信息中就有关于 SELinux安全上下文策略的说明,我们只需按照过滤信息中有关 SELinux 安全上下文策略中的说明中给的值进行修改即可。修改完毕后执行 restorecon 命令,让应用于 目录的新 SELinux 安全上下文立即生效。

  第3步:设置 SELinux 服务与策略,使其允许通过 Samba 服务程序访问普通用户家目录。

      执行 getsebool 命令,筛选出所有与 Samba 服务程序相关的 SELinux 域策略,根据策略的 名称(和经验)选择出正确的策略条目进行开启即可:

开启samba_enable_home_dirs:

  第4步:在 Samba 服务程序的主配置文件(/etc/samba/smb.conf)中,根据表 12-2 所提到的格式写入共享信息。

      在原始的配置文件中,[homes]参数为来访用户的家目录共享信息,[printers]参数为共享的打 印机设备。这两项如果在今后的工作中不需要,可以手动删除,这没有任何问题。

  第5步:Samba 服务程序的配置工作基本完毕。接下来重启 smb 服务(Samba 服务程序在 Linux 系统中的名字为 smb)并清空 iptables 防火墙,然后就可以检验配置效果了。

从红帽7开始防火墙已经慢慢抛弃之前的iptables,取而代之用firewalld。如果现阶段系统仍然使用iptables,则需要清空防火墙规则;否则直接忽略下面两条命令:

3、 Windows 访问文件共享服务 

  无论 Samba 共享服务是部署 Windows 系统上还是部署在 Linux 系统上,通过 Windows 系统进行访问时,其步骤和方法都是一样的。下面假设 Samba 共享服务部署在 Linux 系统上, 并通过 Windows 系统来访问 Samba 服务。Samba 共享服务器和 Windows 客户端的 IP 地址在同一网段。

  要在 Windows 系统中访问共享资源,只需在 Windows 的“运行”命令框中输入两个反斜杠(win10在我的电脑里面输入IP地址),然后再加服务器的 IP 地址即可,如图所示:

正确输入Samba服务器地址后会弹出如下登陆框,直接输入wenhewen账户名以及使用 pdbedit 命令设置的密码后,就可以登录到共享界面中了,如图所示。此时,我们可以尝试执行查看、写入、更名、删除文件等操作。

此时在windows端可以访问linux端共享出来的文件夹database,并在里面进行文件处理操作。

使用Samba实现文件共享:Windows和Linux之间的更多相关文章

  1. 如何在RHEL7上搭建Samba服务实现Windows与Linux之间的文件共享

    如何在RHEL7上搭建Samba服务实现Windows与Linux之间的文件共享 实现环境:VMware workstations.RHEL7.0 第一步:配置网卡IP及yum软件仓库 命令:vim ...

  2. windows与linux之间文件的传输方式总结(转)

    当然,windows与linux之间文件的传输的两种方式有很多,这里就仅仅列出工作中遇到的,作为笔记: 方法一:安装SSH Secure Shell Client客户端 安装即可登录直接拖拉到linu ...

  3. 如何实现windows和linux之间的文件传输

    2010-04-25 18:10 如何实现windows和linux之间的文件传输 如果想从windows中传送大量文件到Linux中,想必会难倒部分Linux初学者,尤其是文件很大时.我曾试过在li ...

  4. 使用pscp命令在Windows与linux之间拷贝文件

    在Linux环境下做开发时,我们可能会在windows下远程控制Linux系统,本文介绍如何使用putty的pscp.exe在Windows和 Linux(本文使用fedora)之间copy文件. 工 ...

  5. windows与linux之间文件的传输

    这边记录一下如何在windows与linux之间进行文件的传输,下面是具体的网址. 原文地址::http://blog.csdn.net/shufac/article/details/51966276 ...

  6. 需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP

    需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP 需求:过滤下面这个网页里共723行 校对中里 行数为两位数 ...

  7. 如何利用Xshell在windows与linux之间互传文件

    如何利用Xshell在windows与linux之间互传文件 第一步: 安装Xshell. 第二步: 打开Xshell,若出现默认的对话框,则选择关闭,因为下面将演示如何将本地文件传输至远程linux ...

  8. linux CentOS 安装rz和sz命令 lrzsz 实现windows和linux之间的文件上传 下载

    https://blog.nbhao.org/1902.html https://bbs.csdn.net/topics/391989523 https://www.cnblogs.com/zhoul ...

  9. 如何使用xftp工具在Windows与Linux之间传输文件

    如何使用xftp工具在Windows与Linux之间传输文件 整理者:vashon 声明:感谢开源社区 xftp工具是一款SFTP,FTP文件传输软件,可在Windows pc与Unix/Linux之 ...

  10. Windows与Linux之间海量文件的传输与Linux下大小写敏感问题

    Windows与Linux之间海量文件的传输与Linux下大小写敏感问题 mount.cifs 支持通过网络文件系统挂载,不过需要安装cifs-utils,也可通过mount -t cifs挂载,详细 ...

随机推荐

  1. Android studio中为项目添加模块依赖的过程

    https://blog.csdn.net/cheng__lu/article/details/74574582 Android studio中为项目添加模块依赖的过程 1.点击菜单file>p ...

  2. ubuntu18.04 安装与卸载 php7.2

    安装: 如果之前有其他版本PHP,在这边禁用掉 1 sudo a2dismod php5 再来安装做准备 1234 sudo apt-get install software-properties-c ...

  3. 使用ResXmanager实现多语言[转]

    1 多國語系 - 使用RESXMANAGER管理資源檔 1.1 前言 在實作多國語系網站時,針對靜態文字多會使用資源檔(Resource)來對應出各語系所需顯示的內容.由於資源檔可能會依照特定結構放式 ...

  4. nginx技术

    Nginx 处理高并发,单台服务器存在服务瓶颈 Nginx属于nio ,noblocking Io非阻塞式的 Apache属于Bio,Blocking IO 阻塞式的 安装部分 依赖安装:yum -y ...

  5. Kubernetes Pod故障归类与排查方法

    Pod概念 Pod是kubernetes集群中最小的部署和管理的基本单元,协同寻址,协同调度. Pod是一个或多个容器的集合,是一个或一组服务(进程)的抽象集合. Pod中可以共享网络和存储(可以简单 ...

  6. 压缩软件推荐(bandizip)

    提及 Windows 平台的压缩软件,大家往往想起老牌的 WinRAR.开源免费的 7-Zip.国产的快压.好压.360 压缩之类,甚至还有时代的眼泪 WinZip.一直以来,压缩软件因为作为十分基础 ...

  7. Wannafly Camp 2020 Day 6I 你吓到我的马了.jpg - BFS

    暴力BFS即可 #include <bits/stdc++.h> using namespace std; int n,m,f[105][105]; char s[105][105]; s ...

  8. 搭建 Review Board - SVN 审核工具

    一.安装环境 CentOS-6.7,ReviewBoard-2.5.1.1 二.安装环境的配置 1.确认当前系统中有如下包,若没有,使用yum安装 httpd-2.2.15:httpd 指的是apac ...

  9. jsp中引用的jstl 和fmt标签-详解

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  10. vm virtualbox 里的ubuntu挂载windows的文件夹

    1.先在virtualbox里设置好共享文件夹 如右图所示: 共享文件夹-添加共享文件夹 里面: 选择好 共享文件夹路径,起好 共享文件夹名称,下面都不用选. 假设共享文件名是ShareD, 2. 然 ...