exportfs命令

  • 当nfs服务端需要增加共享目录时,更改配置文件后,需要重启服务,但是客户端还在使用共享目录,正常情况下需要客户端先卸载共享目录,再在服务端操作,如果客户端很多时,就需要用到exportfs命令来快速配置了
  • exportfs常用选项
    • -a全部挂载或者全部卸载
    • -r重新挂载
    • -u卸载某一个目录
    • -v显示共享目录
  • 测试
    • 服务端操作
      [root@akuilinux01 ~]# vim /etc/exports
      /home/nfstestdir  192.168.21.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
      /tmp/ 192.168.21.0/24(rw,sync,no_root_squash)
      [root@akuilinux01 ~]# exportfs -arv
      exporting 192.168.21.0/24:/tmp
      exporting 192.168.21.0/24:/home/nfstestdir
      exportfs -arv //不用重启nfs服务,配置文件就会生效
    • 客户端操作
      [root@akuilinux02 ~]# showmount -e 192.168.21.128
      Export list for 192.168.21.128:
      /tmp             192.168.21.0/24
      /home/nfstestdir 192.168.21.0/24
      [root@akuilinux02 ~]# mkdir /akui
      [root@akuilinux02 ~]# mount -t nfs  192.168.21.128:/tmp /akui
      [root@akuilinux02 ~]# touch /akui/12121.txt
      [root@akuilinux02 ~]# ll /akui/
      总用量 8
      -rw-r--r-- 1 root root    0 6月  22 21:52 12121.txt
      srw-rw-rw- 1 root root    0 6月  22 21:02 aming.sock
      srwxrwxrwx 1 1001 1001    0 6月  22 21:02 mysql.sock
      -rw-r--r-- 1 root root 3108 6月  19 09:34 nginx_access.log
      -rw-r--r-- 1 root root   92 6月  16 10:10 nginx_access.log-20180615
      drwxr-xr-x 3 root root   18 6月  14 17:32 pear
      drwx------ 3 root root   17 6月  22 21:02 systemd-private-e422dd02155c4b309ecf7d899321d899-chronyd.service-z7tx4P
      drwx------ 3 root root   17 6月  22 21:02 systemd-private-e422dd02155c4b309ecf7d899321d899-vgauthd.service-QVzTM6
      drwx------ 3 root root   17 6月  22 21:02 systemd-private-e422dd02155c4b309ecf7d899321d899-vmtoolsd.service-EPZGUp
      srw-rw-rw- 1 root root    0 6月  22 21:02 www.sock

      nfs客户端问题

  • NFS 4版本会有该问题
  • 客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
  • 一种方法是客户端挂载时加上 -o nfsvers=3
    重新挂载
    mount -t nfs -oremount,nfsvers=3 192.168.21.128:/tmp /akui
  • 另一种是客户端和服务端都需要
    • vim /etc/idmapd.conf //把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务

      FTP介绍

  • FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
  • FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
  • 小公司用的多,大企业不用FTP,因为不安全
  • 大企业用的是自动化发布平台

    使用vsftpd搭建ftp服务

  • centos上自带vsftpd
  • 安装vsftpd
    [root@akuilinux01 ~]# yum install -y vsftpd
  • 创建一个用来普通用户virftp(映射虚拟用户用来上传下载文件)并设置不能登录
    [root@akuilinux01 ~]# useradd -s /sbin/nologin virftp
  • 编辑虚拟用户的密码文件,格式为奇数行为用户名,偶数行为密码,多个用户就写多行,并设置权限为600
    [root@akuilinux01 ~]# vim /etc/vsftpd/vsftpd_login
    user1
    123456
    user2
    123456
    [root@akuilinux01 ~]# chmod 600 /etc/vsftpd/vsftpd_login
  • 把文本密码文件转换成二进制文件
    [root@akuilinux01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
    [root@akuilinux01 ~]# ls /etc/vsftpd/
    ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh  vsftpd_login  vsftpd_login.db
  • 创建虚拟用户配置文件目录
    [root@akuilinux01 ~]# mkdir /etc/vsftpd/vsftpd_user_conf
  • 创建虚拟用户的配置文件,名字为虚拟用户的用户名
    [root@akuilinux01 ~]# cd !$
    cd /etc/vsftpd/vsftpd_user_conf
    [root@akuilinux01 vsftpd_user_conf]# vim user1
    local_root=/home/virftp/user1 #定义虚拟用户的家目录
    anonymous_enable=NO #是否允许匿名用户
    write_enable=YES  #是否允许可写
    local_umask=022  #定义创建新文件和目录的权限
    anon_upload_enable=NO #是否允许匿名用户可上传
    anon_mkdir_write_enable=NO #是否允许匿名用户可写和创建目录
    idle_session_timeout=600 #连接ftp的空闲时间
    data_connection_timeout=120 #数据传输的超时时间
    max_clients=10 #最大客户端
  • 创建虚拟用户的家目录并创建一个文件
    [root@akuilinux01 ~]# mkdir /home/virftp/user1
    [root@akuilinux01 ~]# touch /home/virftp/user1/akui.txt
  • 设置virftp用户家目录的属主属组
    [root@akuilinux01 ~]# chown -R virftp:virftp /home/virftp/
  • 在认证文件里面定义密码文件
    [root@akuilinux01 ~]# vim /etc/pam.d/vsftpd
    #%PAM-1.0
    auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
    account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
    [root@akuilinux01 ~]# ls /lib64/security/pam_userdb.so
    /lib64/security/pam_userdb.so
  • 编辑vsftp的主配置文件
    • vim /etc/vsftpd/vsftpd.conf
    • 将anonymous_enable=YES 改为 anonymous_enable=NO
    • 将#anon_upload_enable=YES 改为 anon_upload_enable=NO
    • 将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
    • 再增加如下内容
      chroot_local_user=YES
      guest_enable=YES #允许映射
      guest_username=virftp #映射到virftp
      virtual_use_local_privs=YES #告诉服务现在使用的是虚拟用户
      user_config_dir=/etc/vsftpd/vsftpd_user_conf #定义虚拟用户的配置文件目录
      allow_writeable_chroot=YES
  • systemctl start vsftpd启动服务

    测试

  • 可以在windows上安装filezille client软件
  • 在linux上
    [root@akuilinux01 ~]#  yum install -y lftp
    [root@akuilinux01 ~]# lftp user1@127.0.0.1
    口令: 
    lftp user1@127.0.0.1:~> ls          
    -rw-r--r--    1 1003     1003            0 Jun 22 14:45 akui.txt
    lftp user1@127.0.0.1:/> get akui.txt  #下载文件到当前目录,?回车可以查看可以使用的命令
    lftp user1@127.0.0.1:/> quit
    [root@akuilinux01 ~]# ls
    1.txt  akui.txt  anaconda-ks.cfg