SAMBA、NFS共享区别

NFS开源文件共享程序:NFS(NetworkFile System)是一个能够将多台Linux的远程主机数据挂载到本地目录的服务,属于轻量级的文件共享服务,不支持Linux与 Windows系统间的文件共享。

Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享软件,实现了Linux与Windows系统间的文件共享。也可以实现Linux与Linux之间的共享服务。
SMB(Server Messages Block)协议:实现局域网内文件或打印机等资源共享服务的协议。

SAMBA共享服务配置

samba服务器:192.168.10.10    Linux客户端:192.168.10.20    Windows客户端:192.168.10.30 
Samba配置文件说明:

服务器端安装Samba服务:yum install samba -y
            浏览配置文件:cat/etc/samba/smb.conf 过滤掉注释
            mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
          cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf

[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:需由SMB服务验证来访主机提供的口令后才可建立访问,更加的安全。
  #server:使用独立的远程主机验证来访主机提供的口令(集中管理帐号)。
  #domain:使用PDC来完成验证
  passdb backend = tdbsam #定义用户后台的类型,共有3种。
  #smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码。
  #tdbsam:创建数据库文件并使用pdbedit建立SMB独立的用户。
  #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共享参数是这样的:
参数 作用
[linuxprobe] 共享名称为linuxprobe
comment = Do not arbitrarily modify the database file 警告用户不要随意修改数据库
path = /home/database 共享文件夹在/home/database
public = no 关闭所有人可见
writable = yes 允许写入操作

----------------------------------------------Linux服务器与Windows之间的共享实验(user口令验证)-------------------------------------

第1步:更改为user验证模式,后台用户类型为tdbsam

security = user
passdb backend = tdbsam

第2步:创建共享文件夹:
mkdir /database


第2步:描述共享文件夹信息。

SMB服务主配置文件的最下面追加共享文件夹的配置参数:

[database]
comment = Do not arbitrarily modify the database file
path = /database
public = no
writable = yes

第3步:创建SMB服务独立的帐号。
 

SMB服务配置文件中密码数据库后台类型为"tdbsam",所以这个帐户和口令是Samba服务的独立帐号信息,我们需要使用pdbedit命令来创建SMB服务的用户数据库
 pdbedit命令用于管理SMB服务的帐户信息数据库,格式为:“pdbedit [选项] 帐户”。

参数 作用
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表

先建立系统用户smbuser,再samba用户映射到系统用户:
useradd smbuser
此系统用户提升为SMB用户:
[root@linuxprobe ~]# pdbedit -a -u smbuser
 
new password:设置SMB服务独立的密码
retype new password:
Unix username: smbuser
NT username:
Account Flags: [U ]
User SID: S-1-5-21-4146456071-3435711857-2069708454-1000
Primary Group SID: S-1-5-21-4146456071-3435711857-2069708454-513
Full Name:
Home Directory: \\linuxprobe\smbuser
HomeDir Drive:
Logon Script:
Profile Path: \\linuxprobe\smbuser\profile
Domain: LINUXPROBE
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Sat, 11 Jul 2015 18:27:04 CST
Password can change: Sat, 11 Jul 2015 18:27:04 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

第4步:允许防火墙和SELinux设置:命令
iptables -F
service iptables save
chown -Rf smbuser:smbuser /database
setsebool -P samba_enable_home_dirs on
semanage fcontext -a -t samba_share_t /database
restorecon -Rv /database/
第5步:验证
 

-------------------------------------------------------------Linux与Linux之间的共享---------------------------------------------------------------

第1步:在客户端安装cifs-utils软件包:
 
[root@linuxprobe ~]# yum install -y cifs-utils
 
第2步:创建挂载目录:
 
[root@linuxprobe ~]# mkdir /database
第3步:在root家目录创建认证文件(依次为SMB用户名、SMB用户密码、SMB共享域):
 
[root@linuxprobe ~]# vim auth.smb
username=smbuser
password=redhat
domain=MYGROUP
此文件太重要了,权限应该给小一些:
[root@linuxprobe ~]# chmod -Rf 600 auth.smb
 
第4步:配置其挂载信息(内容依次为远程共享信息、本地挂载目录、文件系统类型、认证文件以及开机自检选项):
 
[root@linuxprobe ~]# vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0
 
第5步:使用mount命令的-a参数挂载所有在fstab文件中定义的文件信息:
 
[root@linuxprobe ~]# mount -a
成功挂载Samba的共享目录(能够看到共享文件了):
第6步:验证
[root@linuxprobe ~]# cat /database/Memo.txt
i can edit it .

NFS共享

NFS(Network Files System)即网络文件系统,使用TCP/IP协议,依赖于RPC服务与外部通信,所以必需保证RPC服务能够正常注册服务的端口信息才能正常使用NFS服务。
 第1步:创建NFS服务端的共享目录。
     
清空iptables iptables -F service iptables save
     创建nfsfile共享目录:mkdir /nfsfile
     为共享目录设置权限(让其他人可以有写入权限):chmod -Rf 777 /nfsfile
     写入一个文件,用于NFS客户端读取:echo "welcome to linuxprobe.com" > /nfsfile/readme
     NFS服务端配置文件是"/etc/exports"
     [root@linuxprobe ~]# vim /etc/exports

//格式为:共享目录的绝对路径 允许访问NFS资源的客户端(权限参数)
     /nfsfile 192.168.10.*(rw,sync,root_squash)

NFS配置共享的参数有:

参数 作用
ro 只读默认
rw 读写模式
root_squash 当NFS客户端使用root用户访问时,映射为NFS服务端的匿名用户。
no_root_squash 当NFS客户端使用root用户访问时,映射为NFS服务端的root用户。
all_squash 不论NFS客户端使用任何帐户,均映射为NFS服务端的匿名用户。
sync 同时将数据写入到内存与硬盘中,保证不丢失数据。
async 优先将数据保存到内存,然后再写入硬盘,效率更高,但可能造成数据丢失。


 
第2步:启动NFS服务端
     
红帽RHEL7系统中RPC服务已经默认运行(active)了,所以无需再配置RPC服务啦
     直接启动NFS服务端 
     systemctl start nfs-server
     systemctl enable nfs-server
第3步:配置NFS客户端
     
查询远程NFS服务端中可用的共享资源:(showmount命令用于查询NFS服务端共享信息,格式为:“showmount [参数] [远程主机]

参数 作用
-e 显示NFS服务端的共享列表
-a 显示本机挂载NFS资源的情况
-v 显示版本号

[root@linuxprobe ~]# showmount -e 192.168.10.10
 Export list for 192.168.10.10:
/nfsfile (everyone)

创建本地挂载目录: mkdir /nfsfile
挂载:  mount -t nfs 192.168.10.10:/nfsfile /nfsfile
 查看到刚刚写入文件内容:cat /nfsfile/readme

开机后自动将NFS资源挂载到本地,可以通过修改fstab文件来实现
 [root@linuxprobe ~]# vim /etc/fstab
192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0

Autofs自动挂载

AutoFs服务与Mount/Umount命令不同之处在于它是一种守护进程,只有检测到用户试图访问一个尚未挂载的文件系统时才自动的检测并挂载该文件系统,换句话说,将挂载信息填入/etc/fstab文件后系统将在每次开机时都自动将其挂载,而运行AutoFs后则是当用户需要使用该文件系统了才会动态的挂载,节约网络与系统资源。
 
模拟训练:每次进入/media/iso目录时都会自动挂载镜像。
 
NFS服务端RHEL7192.168.10.10
NFS客户端RHEL7192.168.10.20
 
1、安装autofs服务:
 
    [root@linuxprobe ~]# yum install autofs -y
 
2、启动autofs服务并加入到开机启动项中:
 
    [root@linuxprobe ~]# systemctl start autofs
    [root@linuxprobe ~]# systemctl enable autofs
    ln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'
3、修改autofs主配置文件(格式为:挂载目录 映射配置文件):
 
    [root@linuxprobe ~]# vim /etc/auto.master
    /media /etc/iso.misc
4、编辑挂载配置参数文件(映射文件):
 
[root@linuxprobe ~]# vim /etc/iso.misc
iso   -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
5、重启autofs服务:
[root@linuxprobe ~]# systemctl restart autofs
6、验证:
进入自动挂载目录中:
[root@linuxprobe ~]# cd /media/iso
查看当前目录下的文件:
[root@linuxprobe iso]# ls
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta

Linux:SAMBA共享、NFS共享、Autofs自动挂载的更多相关文章

  1. Linux服务——二、配置NFS及autofs自动挂载服务

    一.NFS服务配置步骤 NFS的作用:能够使两台虚拟机之间实现文件共享.数据同步 准备:主机名.网络.yum源 Server端: 1.安装nfs-util和rpcbind:(图形化自带) [root@ ...

  2. NFS使用autofs自动挂载

    NFS自动挂载设置在/etc/fstab和/etc/rc.local可能挂载不成功,假如是服务端NFS宕机还可能导致客户端无法启动,可以使用autofs实现自动挂载 安装autofs yum -y i ...

  3. linux autofs自动挂载

    autofs:自动挂载器 自动挂载器是一个监视目录的守护进程,并在目标子目录被引用时,自动执行预定义的NFS挂载 自动挂载器由autofs服务脚本管理 自动挂载器由auto.master配置文件进行配 ...

  4. 配置samba和NFS共享服务

                            配置samba和NFS共享服务 1案例1:配置SMB文件夹共享 1.1问题 本例要求在虚拟机server0上发布两个共享文件夹,具体要求如下: 此服务器 ...

  5. centos samba/squid 配置 samba配置 smbclient mount fstab自动挂载samba curl -xlocalhost:3128 www.qq.com squid配置 3128 DNSPOD 第二十七节课

    centos  samba/squid 配置  samba配置 smbclient  mount fstab自动挂载samba curl -xlocalhost:3128 www.qq.com squ ...

  6. autofs 自动挂载.

    autofs 自动挂载. 操作环境:redhat 6 一.autofs 说明 自动挂载器是一个监视目录的守护进程,并在目标子目录被引用时,自动执行预定义的挂载 自动挂载器由autofs服务脚本管理 自 ...

  7. Linux 通过 UUID 在 fstab 中自动挂载分区

    Linux 通过 UUID 在 fstab 中自动挂载分区 summerm6关注 2019.10.17 16:29:00字数 1,542阅读 605 https://xiexianbin.cn/lin ...

  8. 2-5-NFS服务器配置和autofs自动挂载-配置Samba服务器配置现实文件共享

    大纲: NFS服务器运行原理 实战配置NFS服务器 配置Samba服务器配置现实文件共享 ----------------------------------------------- 问题: # 怎 ...

  9. 实现nfs持久挂载+autofs自动挂载

    实验环境: 两台主机 node4:192.168.37.44 NFS服务器 node2:192.168.37.22 客户端 在nfs服务器,先安装nfs和rpcbind [root@node4 fen ...

随机推荐

  1. 从service启动activity startActivity慢 的解决方案

    Intent intent = new Intent(context, A.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Pendin ...

  2. AndroidCommon示例

    效果图如下:              1) 自动滚动无限循环ViewPager.ViewPager嵌套自动滚动ViewPager (2) 网络缓存Demo (3) 图片缓存Demo,图片SD卡缓存D ...

  3. Could not find modernizr-2.6.2 in any of the sources

  4. uml图六种箭头的含义(转载)

    在看一些技术博客的时候,经常会见到博客里画上很多uml图.因为经常会被这几种表达关系的箭头搞混,这里我就把常见的6种箭头表达的含义理一下. 泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述, ...

  5. Python机器学习算法 — 逻辑回归(Logistic Regression)

    逻辑回归--简介 逻辑回归(Logistic Regression)就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型 ...

  6. Django day 33 vue中使用element-ui的使用,课程的相关介绍,vue绑定图片,课程列表接口,课程详情页面

    一:vue中使用element-ui的使用, 二:课程的相关介绍, 三:vue绑定图片, 四:课程列表接口, 五:课程详情页面

  7. react hooks 全面转换攻略(一) react本篇之useState,useEffect

    useState 经典案例: import { useState } from 'react'; function Example() { const [count, setCount] = useS ...

  8. HTML和JSP的不同及优缺点

    HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript一样解释性语言,为什么说是解释性语言呢?因为,只要你有一个浏览器那么它就可以正常显示出来 ...

  9. LN : leetcode 515 Find Largest Value in Each Tree Row

    lc 515 Find Largest Value in Each Tree Row 515 Find Largest Value in Each Tree Row You need to find ...

  10. Tomcat无法clean,无法remove部署的项目

    错误: 对部署在Tomcat下的项目进行clean操作,总是提示Could not load the Tomcat server configuration,错误信息如图: 解决: 原来是将Serve ...