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,并在里面进行文件处理操作。

转载于:https://www.cnblogs.com/python-wen/p/10316658.html

使用Samba实现文件共享:Windows和Linux之间相关推荐

  1. Windows与Linux之间互传文件的方法

    以下方法均是以Windows为操作机: 1. 通过WinSCP: WinSCP是一款开源的SFTP客户端,运行于Windows系统下,遵照GPL发布.WinSCP除了SFTP,还支持SSH.SCP(S ...

  2. python linux编程与window编程_Python实现Windows和Linux之间互相传输文件(文件夹)的方法...

    项目中需要从Windows系统传输ISO文件到Linux测试系统,然后再Linux测试系统里安装这个ISO文件.所以就需要实现如何把文件从Windows系统传输到Linux系统中. 在项目中使用了ps ...

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

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

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

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

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

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

  6. python传文件_Python实现Windows和Linux之间互相传输文件(文件夹)的方法

    项目中需要从Windows系统传输ISO文件到Linux测试系统,然后再Linux测试系统里安装这个ISO文件.所以就需要实现如何把文件从Windows系统传输到Linux系统中. 在项目中使用了ps ...

  7. Windows 与 Linux之间进行文件传输,文件传输工具Cuteftp的使用方法。

    文件传输工具Cuteftp的使用方法 Cuteftp是一款FTP客户端软件,只要在linux上安装.启动了FTP服务,就可以使用Cuteftp在Windows 与 Linux之间进行文件传输. 一.  ...

  8. windows与linux之间文件的传输方式总结

    原文地址为: windows与linux之间文件的传输方式总结 当然,windows与linux之间文件的传输的两种方式有很多,这里就仅仅列出工作中遇到的,作为笔记: 方法一:安装SSH Secure ...

  9. windows ssh传文件linux,利用SSH secure Shell实现windows与linux之间传输文件

    在windows下安装SSH secure Shell.默认安装后有两个快捷方式. linux下需要安装openssh-server utuntu默认安装了opens是-client,所以不需要安装, ...

最新文章

  1. 徒手撸一个简单的 IOC
  2. Spring Boot 打成war包部署到tomcat8.5.20报无法访问
  3. 深入理解DOM节点关系
  4. linux加密框架 crypto 算法crypto_register_alg的注册流程
  5. Java中的对象、private关键字、this关键字、构造方法
  6. sql unicode转中文_汉字转拼音的Java类库 JPinyin
  7. C++ std::condition_variable wait() wait_for() 区别 怎么用 实例
  8. 一种基于flex的可视化多层流量切分界面的实现
  9. Redis 安装,主从配置及Sentinel配置自动Failover
  10. 基于CXF的WebService的安全验证问题
  11. linux每个进程有4g,32位Linux单进程有4G内存限制
  12. SolidWorks to URDF转换及常见机器人模型
  13. deepstream视频数据流分析工具包安装使用教程
  14. 如何将RAW格式的磁盘修改为NTFS?教给你三种操作方法
  15. 马尔可夫链及其平稳状态
  16. 在UE4中完美导入MMD的动作,表情;基本导入镜头,材质---最详细教程
  17. C语言----- 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数
  18. winmail中web界面破除用户限制
  19. 混合波束成形| 宽带系统基于码本的信道估计 《Channel Estimation for Hybrid Architecture-Based Wideband Millimete
  20. linux下matlab问题及解决

热门文章

  1. Installing NetBeans IDE with Fortran compilers
  2. 机载雷达导论(第24~28章)
  3. 终于读懂了 Docker
  4. 我的病毒代码之bat文件 win10系统版
  5. 论文排版神器——Texlive + TexStudio
  6. 【GPU】显卡算力对比表
  7. weblogic卸载
  8. java压缩文件流解压出错
  9. 【thinkphp5操作redis系列教程】哈希类型之hSet,hGet,hGetAll
  10. Go调度器系列(3)图解调度原理