File Service之NFS和Samba服务

一、简述NFS原理和配置

NFS:Network FileSystem,网络文件系统

  • 主要功能是能够通过网络在不同的主机之间彼此实现资源共享,也相当于一个文件服务器,NFS服务可以让本地主机将网络远程的NFS服务器分享的目录挂在到本地根下的路径点上,NFS根据指定的连接创建一个基于tcp/ip协议的长连接,连接到NFS服务器的主机端,在本地主机看来远程主机的目录就好像自己的一个磁盘分区一样,使用起来非常方便。
  • NFS主要借助于RPC(远程过程调用)来实现文件分享,RPC(remote procedure call)通过函数调用一部分功能本地程序完成,另一部分功能有远程主机上的函数完成,,两者共同完成资源的分享。
  • 辅助类的服务:rpc, portmapper
    • rpc.mountd:认证;
    • rpc.lockd:加锁;
    • rpc.statd:状态;
  • 集中认证服务
    • ldap:lightweight directory access protocol; ldap over ssl/tls;
    • nis:Network Information Service;

NFS配置:

  • Server端配置:

    • nfs-utils:The nfs-utils package provides a daemon for the kernel NFS server and related tools, which provides a much higher level of performance than the traditional Linux NFS server used by most users.
    • 配置文件:/etc/exports/etc/exports.d/*
      /PATH/TO/SOME_DIR clients1(export_options, ...) clients2(export_options, ...)
    • clients:
      single host:ipv4, ipv6, FQDN;
      network:address/netmask, 支持长短格式的掩码;
      wildcards:主机名通配,例如:.magedu.com;
      netgroups:NIS域内的主机组;@group_name;
      anonymous:使用
      通配所有主机;
    • General Options:
      ro:只读
      rw:读写;
      sync:同步;
      async:异步;
      secure:客户端端口小于1024,否则就要使用insecure选项;
    • User ID Mapping:
      root_squash:压缩root用户,一般指将其映射为nfsnobody;
      no_root_squash:不压缩root用户;
      all_squash:压缩所有用户;
      anonuid and anongid:将压缩的用户映射为此处指定的用户;
  • NFS Client:
    mount -t nfs servername:/path/to/share /path/to/mount_point [-rvVwfnsh ] [-o options]

          # exportfs -ar
          # exportfs -au
    

showmount - show mount information for an NFS server

        showmount -e NFS_SERVER_IP: 查看指定的nfs server上导出的所有文件系统; 
        showmount -a:在nfs server上查看nfs服务的所有客户端列表;
        
    exportfs:
        exportfs 
            -r:重新导出;
            -a:所有文件系统; 
            -v:详细信息;
            -u:取消导出文件系统; 

以192.168.1.107这台主机为服务端:
  1. 检查内核模块

     [root@localhost ~]# lsmod | grep nfsd
     nfsd                  342857  1 
     auth_rpcgss            59415  1 nfsd
     nfs_acl                12837  1 nfsd
     lockd                  93827  1 nfsd
     grace                  13515  2 nfsd,lockd
     sunrpc                348674  7 nfsd,auth_rpcgss,lockd,nfs_acl
    
  2. 安装nfs-utils程序包

           [root@localhost ~]# yum -y install nfs-utils 
    
  3. 启动服务

    [root@localhost ~]# systemctl start nfs.service  
    
  4. 修改配置文件

    先创建共享目录

    [root@localhost ~]# mkdir -pv /data/mysql

    添加配置文件

    [root@localhost ~]# vim /etc/exports
    /data/mysql 192.168.1.103(rw) 192.168.1.102(ro)

    重新导出配置

    [root@localhost ~]# exportfs -rav

以192.168.1.103这台主机为客户端:
[root@localhost ~]# mount.nfs 192.168.1.107:/data/mysql /mnt

挂载后就可以开始使用了

二、简述samba服务,并实现samba配置

  • SAMBA使用的是NetBIOS 通讯协议。

    • NetBIOS即Network Basic Input/Output System,网络的基本输入输出系统,它定义了一种软件接口以及在应用程序和连接介质之前提供通信接口的标准方法,作用是为局域网提供网路及其他特殊功能
    • SAMBA是通过两个服务来控制的
      • nmb:137,138端口,来负责名称解析任务
      • smb:139,445端口,进行数据的传输
  • 程序环境:

    • 服务端程序包:samba,samba-common, samba-libs
      Server and Client software to interoperate with Windows machines.
    • 主配置文件:/etc/samba/smb.conf, 由samba-common包提供;
      主程序:
      • nmbd:NetBIOS name server
      • smbd:SMB/CIFS services
    • Unit File:
      smb.service
      nmb.service
  • samba的配置:/etc/samba/smb.conf
    • 两类配置段:
      • 全局配置
    [global]
    Network-Related Options
        workgroup =
        server string = 
        interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
        hosts allow = 127.  192.168.12.  192.168.13.
        Logging Options
        log file = /var/log/samba/log.%m
        max log size = 50
        Standalone Server Options
        security = user
    设定安全级别:取值有四个;
        share:匿名共享;
        user:使用samba服务自我管理的账号和密码进行用户认证;用户必须是系统用户,但密码非为/etc/shadow中的密码,而由samba自行管理的文件,其密码文件的格式由passdb backend进行定义;
        server:由第三方服务进行统一认证;
        domain:使用DC进行认证;基于kerberos协议进行;
            passdb backend = tdbsam
        Printing Options
        load printers = yes
        cups options = raw
共享文件系统配置
    [SHARED_NAME]
    有三类:
        [homes]:为每个samba用户定义其是否能够通过samba服务访问自己的家目录;
        [printers]:定义打印服务;
        [shared_fs]:定义共享的文件系统; 
        常用指令:
                    comment:注释信息;
                    path:当前共享所映射的文件系统路径;
                    browseable:是否可浏览,指是否可被用户查看;
                    guest ok:是否允许来宾账号访问;
                    public:是否公开所有用户;
                    writable:是否可写;
                    read only:是否为只读;
                    write list:拥有写权限的用户列表;
                        用户名
                        @组名
                        +组名
        samba用户管理:
            smbpasswd 
                smbpasswd [options] USERNAME
                    -a:添加
                    -x:删除
                    -d:禁用
                    -e:启用
            pdbedit
                -L:列出samba服务中的所有用户;
                -a, --create:添加用户为samba用户;
                    -u, --user=USER:要管理的用户;
                -x, --delete:删除用户;
                -t, --password-from-stdin:从标准输出接收字符串作为用户密码;
                    使用空提示符,而后将密码输入两次;
            
        查看服务器端的共享:
            smbclient -L SMB_SERVER  [-U USERNAME]
            
        交互式文件访问:
            smbclient //SMB_SERVER/SHARE_NAME [-U USERNAME]
            
        挂载访问:
            mount -t cifs //SMB_SERVER/SAHRE_NAME  -o username=USERNAME,password=PASSWORD
            
            注意:挂载操作的用户,与-o选项中指定用户直接产生映射关系;
                此时,访问挂载点,是以-o选项中的username指定的用户身份进行;本地用户对指定的路径访问,首先得拥有对应的本地文件系统权限;
            
    smbstatus命令:
        显示samba服务的相关共享的访问状态信息;
            -b:显示简要格式信息;
            -v:显示详细格式信息; 

配置示例

 在服务器端配置
 [root@localhost ~]# yum -y install samba
 #创建访问用户
 [root@localhost samba]# useradd smbuser1
 [root@localhost samba]# smbpasswd smbuser1 -a
 New SMB password:
 Retype new SMB password:
 Added user smbuser1.
 [root@localhost samba]# mkdir /data/samba/files -pv
 [root@localhost samba]# setfacl -m u:smbuser1:rwx /data/samba/files
 
 # 配置共享
 vim /etc/samba/smb.conf
     [myfiles]
        comment = A TEST SHARED DIR
        guest ok = Yes
        path = /data/samba/files
        read only = No
# testparm命令测试语法错误

在客户端操作:
[root@localhost ~]# smbclient -L 192.168.1.103 -U smbuser1
[root@localhost ~]# mount.cifs //192.168.1.103/myfiles /mnt -o  username=smbuser2 password=inspur
[root@localhost ~]# mkdir /mnt/mysql
[root@localhost ~]# ls
[root@localhost ~]# ls /mnt
issue  mysql
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容