1. 程式人生 > >exportfs命令,ftp介紹,使用vsftpd搭建ftp

exportfs命令,ftp介紹,使用vsftpd搭建ftp

設置 inux IV 目錄 get ks.cfg 不用 多行 add

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 [email protected]
    口令: 
    lftp [email protected]:~> ls          
    -rw-r--r--    1 1003     1003            0 Jun 22 14:45 akui.txt
    lftp [email protected]:/> get akui.txt  #下載文件到當前目錄,?回車可以查看可以使用的命令
    lftp [email protected]:/> quit
    [root@akuilinux01 ~]# ls
    1.txt  akui.txt  anaconda-ks.cfg

exportfs命令,ftp介紹,使用vsftpd搭建ftp