使用Samba实现文件共享:Windows和Linux之间
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之间的更多相关文章
- 如何在RHEL7上搭建Samba服务实现Windows与Linux之间的文件共享
如何在RHEL7上搭建Samba服务实现Windows与Linux之间的文件共享 实现环境:VMware workstations.RHEL7.0 第一步:配置网卡IP及yum软件仓库 命令:vim ...
- windows与linux之间文件的传输方式总结(转)
当然,windows与linux之间文件的传输的两种方式有很多,这里就仅仅列出工作中遇到的,作为笔记: 方法一:安装SSH Secure Shell Client客户端 安装即可登录直接拖拉到linu ...
- 如何实现windows和linux之间的文件传输
2010-04-25 18:10 如何实现windows和linux之间的文件传输 如果想从windows中传送大量文件到Linux中,想必会难倒部分Linux初学者,尤其是文件很大时.我曾试过在li ...
- 使用pscp命令在Windows与linux之间拷贝文件
在Linux环境下做开发时,我们可能会在windows下远程控制Linux系统,本文介绍如何使用putty的pscp.exe在Windows和 Linux(本文使用fedora)之间copy文件. 工 ...
- windows与linux之间文件的传输
这边记录一下如何在windows与linux之间进行文件的传输,下面是具体的网址. 原文地址::http://blog.csdn.net/shufac/article/details/51966276 ...
- 需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP
需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP 需求:过滤下面这个网页里共723行 校对中里 行数为两位数 ...
- 如何利用Xshell在windows与linux之间互传文件
如何利用Xshell在windows与linux之间互传文件 第一步: 安装Xshell. 第二步: 打开Xshell,若出现默认的对话框,则选择关闭,因为下面将演示如何将本地文件传输至远程linux ...
- linux CentOS 安装rz和sz命令 lrzsz 实现windows和linux之间的文件上传 下载
https://blog.nbhao.org/1902.html https://bbs.csdn.net/topics/391989523 https://www.cnblogs.com/zhoul ...
- 如何使用xftp工具在Windows与Linux之间传输文件
如何使用xftp工具在Windows与Linux之间传输文件 整理者:vashon 声明:感谢开源社区 xftp工具是一款SFTP,FTP文件传输软件,可在Windows pc与Unix/Linux之 ...
- Windows与Linux之间海量文件的传输与Linux下大小写敏感问题
Windows与Linux之间海量文件的传输与Linux下大小写敏感问题 mount.cifs 支持通过网络文件系统挂载,不过需要安装cifs-utils,也可通过mount -t cifs挂载,详细 ...
随机推荐
- P1041 传染病控制【暴搜】
P1041 传染病控制 提交 10.78k 通过 3.74k 时间限制 1.00s 内存限制 125.00MB 题目提供者CCF_NOI 难度提高+/省选- 历史分数100 提交记录 查看题解 标签 ...
- PAT (Basic Level) Practice (中文)1043 输出PATest (20 分)
给定一个长度不超过 1 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已经输 ...
- ubantu crontab定时任务设置
Lynx浏览器安装.安装命令:sudo apt-get install lynx.打开终端输入:crontab -e若初次执行会出现以下(选择编译器,一般选4(Vim))Select an edito ...
- Socket之UDP
相对于TCP/IP来说,UDP更像是发快递和写信,不需要判断和对方是否连通就可以发送,而TCP/IP必须确认连通之后才可以发送,这样UDP通讯其实不能严格按照TCP/IP的说法区分服务器和客户端,对于 ...
- Java连载85-集合的Contains和Remove方法
一.包含与删除两种方法解析 1.boolean contains(Object o);判断集合中是否包含某个元素. package com.bjpowernode.java_learning; imp ...
- pytest参数化 parametrize
pytest.mark.parametrize装饰器可以实现测试用例参数化 parametrizing 1.这里是一个实现检查一定的输入和期望输出测试功能的典型例子 # content of test ...
- 在VMware下安装CentOS 7.6
转载自https://blog.51cto.com/hnyuanzijian/2343716?appinstall=0a.点击左上角文件,新建虚拟机,选择典型安装,并下一步 b.选择稍后安装操作系 ...
- 记录 Docker 的学习过程 (日志篇)
日志收集 elk 在node3上操作 docker pull sebp/elk:5610 node3# sysctl vm.max_map_count=262144 node3# docker run ...
- BK: Data mining
data ------> knowledge Are all patterns interesting? No. only a small fraction of the patterns po ...
- MySQL 中like的使用对于索引的影响
今天看了一篇对于like使用对索引的影响的文章,发现自己实践的跟文章得出结论不大一样.所以还是建议自己再看别人文章的时候自己亲自动手实践一下.以免学到不全面的知识. 列子: 先建立一张表: -- 创建 ...