zoukankan      html  css  js  c++  java
  • Linux:SAMBA共享、NFS共享、Autofs自动挂载

    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: \linuxprobesmbuser
    HomeDir Drive:
    Logon Script:
    Profile Path: \linuxprobesmbuserprofile
    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
  • 相关阅读:
    HttpClient调用RestFul接口(post和get方式)
    mysql权限异常
    javascript:用法
    Java哈希值HashCode理解
    Java的CountDownLatch和CyclicBarrier的理解和区别
    Java并发编程与技术内幕:ThreadGroup线程组应用
    面试官: 谈谈什么是守护线程以及作用 ?
    java 成员变量 静态成员变量 方法 静态方法初始化顺序
    【java并发核心一】Semaphore 的使用思路
    threadlocal原理及常用应用场景
  • 原文地址:https://www.cnblogs.com/revo/p/7444914.html
Copyright © 2011-2022 走看看