• Linux从入门到精通——cifs文件系统


    ###cifs文件系统##


    适用于客户,用于windows和linux之间的文件共享。
    用internet文件系统(cifs)也称为 common internet file system

    1.想要使用共享,就要下载samba
       yum install samba samba-client samba-common -y
       systemctl start smb
       systemctl stop firewalld

       smbclient -L //172.25.254.110       ##匿名用户显示共享的内容
                                 ##匿名用户没有密码直接回车
       pdbedit -L             ##显示smd用户
       smbpasswd -a student        ##需要输入密码,必须是本地存在的用户,不存在的用户会添加失败
       pdbedit -L               ##查看smb用户是否建立成功
       pdbedit -X studnet          ##删除smb用户
      
    2.访问(selinux关闭时前提)

     需要本地主机解析   vim /etc/hosts
               172.25.254.110  student.example.com

       在windows里面想要访问:在搜索中输入172.25.254.100
                           输入存在用户密码和姓名 
                           就可以访问家目录了

       在linux中:
       smbclient //172.25.254.110/student -U student
       输入密码
       ls                ##显示服务器信息
       !ls            ##显示student家目录的信息
       smb:> put /etc/passwd     ##只能上传当前目录的文件,不能识别绝对路径
       被拒绝了
          

       mount //172.25.254.110/studnet /mnt/ -o username=student,password=student(文件系统就可以挂载)  ##暂时挂载

       永久挂载:
       vim /etc/fstab
       mount //172.25.254.110/studnet /mnt/ -o username=student,password=student
       mount -a                    ##更新挂载信息
       cd /mnt 
       touch file{1..3}           ##这样就可以建立文件

       vim /etc/samba/smb.conf
        hosts allow = 172.25.254.110  ##白名单
        hosts deny = 172.25.254.10    ##黑名单
       systemctl restart smb
          

          

          

    3.共享文件(先开启selinux,改为enforcing)

       rpm -qc samba-common
       /etc/samba/smb.conf      ##samba的配置文件

       (1)共享自己建立的目录及文件
       建立自己的目录
       mkdir /westos
       cd /westos
       touch file{1..3}

       vim /etc/samba/smb.conf    ##开启 westos 共享
        [westos]
        comment = dir from /wesots
        path = /westos
       systemctl restart smb
       当selinux为disabled,就可以查看
            


      semanage fcontext -a -t samda_share_t '/westos(/.*)?' ##修改安全上下文
      restorecon -RvvF /westos/ 
             

       smbclient //172.25.254.110/westos -U student
       !ls   ##查看不了
          

       setenforce 0
       getenforce   --> permissive
            

       smbclient //172.25.254.110/westos -U student
       ls   ##可以查看,所以说就是selinux的问题
       setenforce 1
       setsebool -P use_samba_home_dirs on
       ls    ##这样也就可以看了,在强制情况下
             


       (2)共享系统目录及其文件


       注意:有些安全上下文不能更改,比如系统文件,更改之后就只能smb读取


        vim /etc/samba/smb.conf    ##开启 westos 共享
        [mnt]
        comment = dir from /mnt
        path = /mnt
       systemctl restart smb
          

           

          

       setsebool -P export_all_ro(rw) on    ##这个开启后,安全上下文就不会被对比,直接可以查看,这个要打开,要不下面挂载到/mnt下后,touch不了文件

           

          

    4.指定用户查看共享目录
        vim /etc/samba/smb.conf    ##开启 westos 共享
        [westos]
        comment = dir from /wesots
        path = /westos
        valid users = westos  ##指定westos能够查看共享(挂载)
        valid users = @(+)westos  ##属于westos组的可以查看共享(挂载)
        writable = yes     ##是否可写
        write list = westos  ##指定用户可写
        guest ok = yes     ##匿名用户可以查看共享
        (map to guest = bad user)
        browseable = no    ##是否能够显示 -L的时候看不见可用,但是可以用
        admin users = westos ##westos用户在执行的时候是超级用户身份
       systemctl restart smb
          

          

    5.多用户挂载


    如果root用户挂载以后,切换到kiosk用户,kiosk用户进入到mnt下,也可以查看
    为了防止这样(超级用户挂载以后退出,没有卸载,普通用户也能查看)

       yum install cifs-utils -y  ##如果以及nothing to do的话,那search一下,然后reinstall一下
       vim /root/smbauth
        username=studnet
        password=student
       chmod 777 /westos
       mount //172.25.254.110/westos /mnt multiuser,credentials=/root/smbauth,sec=ntlmssp

       测试:
       切换到root用户:
       mount //172.25.254.110/westos /mnt multiuser,credentials=/root/smbauth,sec=ntlmssp
       touch file    ##root用户是用student用户挂载的,touch的文件所有组和所有人显示的是kiosk用户,是因为真机的kiosk用户和虚拟机里smb的student用户的id是一样的。

          
       su - kiosk
       cd /mnt/   
       ls      ##查看不了
       cifscreds add -u westos 172.25.254.110  ##用存在用户身份登陆
       touch file    ##kiosk用户是用westos用户挂载的,touch的文件所有组和所有人显示的是student用户,是因为真机的student用户和虚拟机里smb的westos用户的id是一样的。
          

       注意:遇见了一个问题touch不了文件
       解决方法:(1)查看sebool是否export_all_ro(rw)是on
           (2)查看/westos目录的权限要改为777
           (3)查看配置文件里面的writable是否为yes

    6.nfs  (linux对linux共享文件用 nfs)
       yum install nfs-utils -y
       yum list nfs-utils
       yum reinstall nfs-utils -y
       showmount -e 172.25.254.110     ##显示没有共享项目
       systemctl start nfs
       showmount -e 172.25.254.110 
       Export list for 172.25.254.110:     ##刷新一下会自动出来

       vim /etc/exports
        /westos     *(sync)
       exportfs -rv      ##这个不能重启服务

       showmount -e 172.25.254.110 
       Export list for 172.25.254.110:  
       /westos *
          

       测试:
       su - root
       mount 172.25.254.110:/westos /mnt/    ##临时挂载
       df

       vim /etc/fstab
        172.25.254.100:/westos /mnt nfs defaults 0 0
       mount -a
       df

    6.自动挂载和卸载
       nfs可以用时自动挂载,不用时自动卸载,防止资源浪费
       yum install autofs.x86_64 -y
       ls -ld /net   ##没有这个文件
       systemctl start autofs
       ls -ld /net   ##文件就存在
             

       更改更新时间 vim /etc/sysconfig/autofs
              TIMEOUT=5    ##更新时间为5s
              systemctl restart autofs
          

       cd /net
       cd 172.25.254.110
       ls               ##有一个westos文件
       cd westos/
       ls               ##有四个file文件
       df               ##自动挂载到/net/172.25.254.110/westos
       cd
       df               ##等待足够设定时间,自动卸载设备
          

          

    7.更改默认挂载点
       vim /etc/auto.master        ##配置文件
       /opt/nfs    /etc/auto.nfs   ##上级目录+最终挂载点的设定文件,需要自己建立

          

       vim /etc/auto.nfs
        westos -ro 172.25.254.110:/westos
       systemctl start autofs
             

       cd /opt/nfs/westos      ##nfs目录是自动生成的,在自动挂载时自动生成,自动卸载后消失
       df       ##自动挂载
          

       vim /etc/auto.nfs
        westos -rw,vers=3  (版本改为3,有2,3,4三个版本)  172.25.254.110:/westos
       systemctl start autofs

    8.对权限的更改


       (1)设备挂载上后,查看的用户删除或添加不了文件,显示的是文件是只读的
       vim /etc/experts
        /westos   *(rw,sync)
       exportfs -rv

       (2)建立文件的时候,用户默认是nfsnobody,可以指定用户或用户组
       vim /etc/experts
        /westos   *(rw,sync,anonuid=1000)
       exportfs -rv

       (3)建立文件的时候,用户或用户组不更改,仍为root
     vim /etc/experts
        /westos   *(rw,sync,no_root_sqush)
       exportfs -rv

       (4)设定某一用户的特殊权限
     vim /etc/experts
        /westos   *(sync)  172.25.254.10(rw,sync,no_root_sqush)
       exportfs -rv
     

  • 相关阅读:
    Ext.Net多表头跨行跨列
    操作文件
    HighMaps
    HighCharts动态读取显示
    SAP CRM 项目笔记(一) SOW(工作说明书)讨论
    .net 动态编译解决考勤计算问题
    CPU的大小端模式
    将一个数转化为任意进制的数
    关于内存对齐
    常量指针与指针常量
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9480270.html
Copyright © 2020-2023  润新知