Linux 使用Samba或NFS实现文件共享
SAMBA文件共享服务
Samba是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。

例1:配置Samba服务前,先删掉Samba服务主配置文件中的注释和空行。
通过grep命令,添加-v参数(反向选择),分别去掉所有以井号(#)和分号(;)开头的注释信息行,对于剩余的空白行可以使用^$参数来表示并进行反选过滤,最后把过滤后的可用参数信息通过重定向符覆盖写入到原始文件名称中。


Samba服务程序中的参数以及作用:
| 【global】 | #全局参数 | |
| workgroup = MYGROUP | #工作组名称 | |
| server string = Samba Server Version %v | #服务器介绍信息,参数%v为显示SMB版本号 | |
| log file = /var/log/samba/log.%m | #定义日志文件的存放位置与名称,参数%m为来访的主机名 | |
| max log size = 50 | #定义日志文件的最大容量为50KB | |
| security = user | #安全验证的方式,总共有4种 | |
| #share:来访主机无需验证口令;比较方便,但安全性很差 | ||
| #user:需验证来访主机提供的口令后才可以访问;提升了安全性 | ||
| #server:使用独立的远程主机验证来访主机提供的口令(集中管理账户) | ||
| #domain:使用域控制器进行身份验证 | ||
| passdb backend = tdbsam | #定义用户后台的类型,共有3种 | |
| #smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码 | ||
| #ldapsam:基于LDAP服务进行账户验证 | ||
| load printers = yes | #设置在Samba服务启动时是否共享打印机设备 | |
| cups options = raw | #打印机的选项 | |
| [homes] | #共享参数 | |
| comment = Home Directories | #描述信息 | |
| browseable = no | #指定共享信息是否在“网上邻居”中可见 | |
| writable = yes | #定义是否可以执行写入操作,与“read only”相反 | |
| [printers] | #打印机共享参数 | |
| comment = All Printers | ||
| path = /var/spool/samba | #共享文件的实际路径(重要)。 | |
| browseable = no | ||
| guest ok = no | #是否所有人可见,等同于"public"参数。 | |
| writable = no | ||
| printable = yes |
配置共享资源
Samba服务程序的主配置文件与Apache服务很相似,包括全局配置参数和区域配置参数。全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效。创建共享资源的方法很简单,只要将下表中的参数写入到Samba服务程序的主配置文件中,然后重启该服务即可。
用于设置Samba服务程序的参数以及作用
| 参数 | 作用 |
| [database] | 共享名称为database |
| comment=Do not arbitrarily modify the database file | 警告用户不要随意修改数据库 |
| path = /home/database | 共享目录为/home/database |
| public = no | 关闭“所有人可见” |
| writable = yes | 允许写入操作 |
pdbedit命令:管理SMB服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。
pdbedit参数:
| 参数 | 作用 |
| -a 用户名 | 建立Samba用户 |
| -x 用户名 | 删除Samba用户 |
| -L | 列出用户列表 |
| -Lv | 列出用户详细信息的列表 |
例2:在例1基础上,配置samba服务共享文件夹

Windows挂载共享
无论Samba共享服务是部署Windows系统上还是部署在Linux系统上,通过Windows系统进行访问时,其步骤和方法都是一样的。下面假设Samba共享服务部署在Linux系统上,并通过Windows系统来访问Samba服务。Samba共享服务器和Windows客户端的IP地址可以根据下表来设置。
| 主机名称 | 操作系统 | IP地址 |
| Samba共享服务器 | RHEL 7 | 192.168.10.10 |
| Linux客户端 | RHEL 7 | 192.168.10.20 |
| Windows客户端 | Windows 7 | 192.168.10.30 |
在Windows的“运行”命令框中输入两个反斜杠,然后再加服务器的IP地址即可,如图所示

Linux挂载共享
Samba服务程序还可以实现Linux系统之间的文件共享。
Samba共享服务器和Linux客户端各自使用的操作系统以及IP地址
| 主机名称 | 操作系统 | IP地址 |
| Samba共享服务器 | RHEL 7 | 192.168.10.10 |
| Linux客户端 | RHEL 7 | 192.168.10.20 |
| Windows客户端 | Windows 7 | 192.168.10.30 |
Linux客户端需要安装支持文件共享服务的软件包:yum install -y cifs-utils
例3:在例2基础上,实现Linux客户端挂载Samba服务的共享文件夹
客户端进入到挂载目录/muzi后就可以对目录里的文件进行增删改操作了。
NFS网络文件系统
如果觉得Samba服务程序的配置太麻烦,而且恰巧需要共享文件的主机都是Linux系统,非常推荐在客户端部署NFS服务来共享文件。NFS(网络文件系统)服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。

NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容。可以按照“共享目录的路径 允许访问的NFS客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。
用于配置NFS服务程序配置文件的参数
| 参数 | 作用 |
| ro | 只读 |
| rw | 读写 |
| root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
| no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
| all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
| sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
| async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
注意:NFS客户端地址与权限之间没有空格
服务端192.168.10.10配置:

客户端192.168.10.20配置:

NFS客户端的配置步骤也十分简单。先使用showmount命令(以及必要的参数,见下表)查询NFS服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。
showmount命令中可用的参数以及作用:
| 参数 | 作用 |
| -e | 显示NFS服务器的共享列表 |
| -a | 显示本机挂载的文件资源的情况NFS资源的情况 |
| -v | 显示版本号 |
AutoFs自动挂载服务
无论是Samba服务还是NFS服务,都要把挂载信息写入到/etc/fstab中,这样远程共享资源就会自动随服务器开机而进行挂载。虽然这很方便,但是如果挂载的远程资源太多,则会给网络带宽和服务器的硬件资源带来很大负载。如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费。
autofs自动挂载服务可以解决这一问题。与mount命令不同,autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。换句话说,将挂载信息填入/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

autofs服务的主配置文件:/etc/auto.master。记录要自动挂载的目录和对应的子配置文件。更加详细具体的挂载目录内的挂载设备信息则记录在用户自定义的子配置文件中。子配置文件后缀必须为.misc。
autofs服务的子配置文件应按照“挂载目录 挂载文件类型及权限 主机ip地址:设备名称”的格式进行填写。
例4:在例3基础上,在客户端安装autofs服务,实现对服务端的nfs共享目录的自动挂载

当用df -h查看设备挂载情况时,确认共享目录没有被挂载上,而且/nice目录里根本不存在test目录,但却可以使用cd命令进入test目录中,说明autofs服务配置成功。
Linux 使用Samba或NFS实现文件共享的更多相关文章
- 《Linux就该这么学》培训笔记_ch12_使用Samba或NFS实现文件共享
<Linux就该这么学>培训笔记_ch12_使用Samba或NFS实现文件共享 文章最后会post上书本的笔记照片. 文章主要内容: SAMBA文件共享服务 配置共享资源 Windows挂 ...
- 第12章 使用Samba或NFS实现文件共享
章节简述: 本章节为读者讲述文件共享系统的作用,了解Samba与NFS服务程序的开发背景以及用法. 详细逐条讲解Samba服务配置参数,演示安全共享文件的配置策方法,并使用autofs服务程序自动挂载 ...
- Linux笔记16 使用Vsftpd服务传输文件;使用Samba或NFS实现文件共享。
FTP协议有下面两种工作模式. 1.主动模式:FTP服务器主动向客户端发起连接请求. 2.被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式).Vsftpd服务程序vsftpd作为更加 ...
- 使用samba或NFS实现文件共享
- [转帖]使用Gnome文件管理器连接到服务器:FTP/SFTP、Samba、NFS的方法
使用Gnome文件管理器连接到服务器:FTP/SFTP.Samba.NFS的方法 2019-05-09 16:28:44作者:雷增线稿源:云网牛站 https://ywnz.com/linuxyffq ...
- 《linux就该这么学》第十三节课:第11章和第12章,vsftpd服务与samba和nfs服务
第十一章 (借鉴请改动) 11.1.文件传输协议 FTP文件穿数协议,端口20用于数据传输,21端口用于传输相关FTP命令 ftp协议的两种工作模式: 主动模式:ftp向客户端发起 被动模式(默认): ...
- Linux实战教学笔记22:企业级NFS网络文件共享服务
目录 第二十二节 企业级NFS网络文件共享服务 第一章 NFS网络文件共享服务 1.1 NFS介绍 1.2 NFS系统原理介绍 1.3 NFS服务端部署环境准备 1.4 NFS server端的设置 ...
- Linux:SAMBA共享、NFS共享、Autofs自动挂载
SAMBA.NFS共享区别 NFS开源文件共享程序:NFS(NetworkFile System)是一个能够将多台Linux的远程主机数据挂载到本地目录的服务,属于轻量级的文件共享服务,不支持Linu ...
- linux入门系列16--文件共享之Samba和NFS
前一篇文章"linux入门系列15--文件传输之vsftp服务"讲解了文件传输,本篇继续讲解文件共享相关知识. 文件共享在生活和工作中非常常见,比如同一团队中不同成员需要共同维护同 ...
- linux Centos 服务器之间NFS文件共享挂载
linux Centos 6.9服务器之间文件共享挂载 目的:因为服务器设置了负载均衡,多服务器的文件上传必然要同步,这里的目的把服务器1设置为主文件服务器 服务器1:192.168.1.100(共享 ...
随机推荐
- 自己写的java教程,免费分享
自己写的一套java教程,主要用于内部培训使用,有需要的可以直接免费下载: http://it.zhenzikj.com/download/java.zip 一共写了3套: java语言基础.网络开发 ...
- 在百度云服务器上部署Django网站的经历
前言: 前段时间,利用Django为单位制作了一个小型的内部考勤系统,本想放到单位内部的服务器上,考虑到运行的稳定.安全防护等问题,最终决定把网站部署到百度云服务器上,事先也在网上查找了一些资料,但过 ...
- Docker CLI docker buildx 常用命令
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化.Docker是内核 ...
- vscode 远程连接 linux 远程开发
1. 安装拓展 remote-ssh 2. 设置云主机 git 控制台使用命令 ssh-keygen # 生成一个 ssh key # 登录远程主机 # ssh ubuntu@123.123.123. ...
- java annotation(如何创建新的注解)小结
"注解"有三种 1:无实际参数,只有声明 2:只存在单一参数,有些像方法调用 3:有多个参数 标准的"注解"就先不总结了. 想总结一下<如何创建自己的注解 ...
- Linux Shell开发功能点
背景 需要操作一批次服务器安装Docker 功能特色 一键执行 bash <(curl -s -L http://server.com/installDocker.sh) MemberNode ...
- AWS RedShift实战应用SQL大全及经验分享[持续更新]
文章目录 前言 - 关于RedShift 一.数据维护篇 1.1 表结构操作 1.2 数据添加与查询 1.3 数据修改与删除 1.4 事物操作 二.SQL结构篇 2.1 使用with封装代码 2.2 ...
- centos7.2下配置DNS服务器
https://baijiahao.baidu.com/s?id=1748980460185046641&wfr=spider&for=pc 1.安装bind(服务器) yum -y ...
- js过滤掉指定html标签
替换标签 var str = "<p><span style='color:#ccc;'>这是测试标签</span><span>这是测试htm ...
- Devexpress WPF ChartControl 多Y轴
<Window x:Class="DXApplication4.MainWindow" xmlns="http://schemas.microsoft.com/wi ...