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. 4.2 Context-Free Grammars

    4.2 Context-Free Grammars Grammars were introduced in Section 2.2 to systematically describe the syn ...

  2. 第八周 Leetcode 44. Wildcard Matching 水题 (HARD)

    Leetcode 44 实现一种类似正则表达式的字符串匹配功能. 复杂度要求不高, 调代码稍微费点劲.. 好像跟贪心也不太沾边, 总之 *把待匹配串分成若干个子串, 每一个子串尽量在模式串中靠前的部分 ...

  3. SVN导出指定版本差异文件 ***

    当一个项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他 没有修改过的文件就没有必要上载到服务器.但一个稍微上规模的项目文 ...

  4. uva11149

    Consider an n-by-n matrix A. We define Ak = A ∗ A ∗ . . . ∗ A (k times). Here, ∗ denotes the usual m ...

  5. gitlab-ce平台调试

    SMTP使用QQ exmail 遇到的问题:使用qinrui@easyunion.net对516059158@qq.com能发送验证邮件,但是无法打开验证连接

  6. 贪心 Codeforces Round #135 (Div. 2) C. Color Stripe

    题目传送门 /* 贪心:当m == 2时,结果肯定是ABABAB或BABABA,取最小改变量:当m > 2时,当与前一个相等时, 改变一个字母 同时不和下一个相等就是最优的解法 */ #incl ...

  7. 设计模式学习之代理模式(Proxy)

    一.代理模式的初衷 不想让客户端直接访问具体实现接口,客户端不应该直接访问具体实现,一般会涉及到以下四个对象 业务接口:定义客户端访问的接口,是实现类和代理类都需要实现的 实现类:实现了业务接口,真正 ...

  8. Java 8 (2) 使用Lambda表达式

    什么是Lambda? 可以把Lambda表达式理解为 简洁的表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表. 使用Lambda可以让你更 ...

  9. MVC的学习-EF的认识

    1.什么是EF EF又称持久层框架:平时C#定义的变量是保存到内存中的,一断电就没有了.而持久的意思是数据保存到硬盘盘里(数据库的sql查询是在硬盘里进行的,所以速度很慢).EF帮我们将一个对象保存到 ...

  10. 【C++】Item18. Make interfaces easy to use correctly and hard to use incorrectly

    接口容易被正确使用,不易被误用 c++简单工厂模式时,初级实现为ITest* CreateTestOld(), 然后用户负责释放返回的对象.如果忘记释放就会造成memory leak,所以在设计工厂接 ...