2018-3-27 Linux學習筆記

14.4 exportfs命令

  • exportfs命令是隨nfs-utils安裝包一起安裝的.
    2018-3-27 Linux學習筆記
  • exportfs命令的應用場景:
  • 假設在服務器上已配置了NFS服務,共享了NFS目錄.過段時間,需要增加另一個共享目錄,那麼我們需要編輯NFS配置文件\etc\exports,然後重啓NFS服務.然而,問題是,由於已經有NFS客戶端在使用我們之前創建的共享目錄了,如果我們停止/重起NFS服務的話,會導致NFS客戶端相關使用NFS服務的進程(比如nginx)被掛起(進程狀態爲D),從而出現重啓不了,又殺不死進程,甚至把機器搞死機的尷尬情況.
  • 爲了避免這種情況,在停止/重啓NFS服務時,需要先將NFS客戶端上掛載的共享目錄卸載,待NFS服務重起後,再掛載.但如果有很多NFS客戶端的話,這將是一件工作量很大的事情.爲了解決這個問題,可使用exportfs命令.

  • exportfs命令常用選項:
    -a 全部掛載或者全部卸載
    -r 重新掛載
    -u 卸載某一個目錄
    -v 顯示共享目錄

  • 示例操作:
  • NFS服務端增加/tmp/爲共享目錄,後使用exportfs命令讓配置文件生效(不用重啓NFS服務).
  • 服務端上的操作:
  • 編輯NFS配置文件:
    vim /etc/exports
  • 增加如下一行:
    /tmp/ 192.168.133.132(rw,sync,no_root_squash)
    2018-3-27 Linux學習筆記
  • exportfs -arv #執行後不用重啓nfs服務,配置文件就會生效
    2018-3-27 Linux學習筆記
  • 客戶端上的操作:
  • showmount -e 192.168.133.130 #IP爲NFS服務端的IP地址
    2018-3-27 Linux學習筆記
  • mount -t nfs 192.168.133.130:/tmp/ /mnt/ #掛載服務端的/tmp目錄
  • touch /mnt/1212.txt
  • ls -l /mnt/
    2018-3-27 Linux學習筆記

14.5 NFS客戶端問題

  • NFS 4版本(尤其是在centos6上)會有如下問題:
    客戶端掛載共享目錄後,不管是root用戶還是普通用戶,在創建新文件時屬主、屬組爲nobody.
  • 解決方法有兩種:
  • 方法1:
  • 客戶端掛載時加上 -o nfsvers=3(或-oremount,nfsvers=3,重新進行掛載),例如:
    mount -t nfs -oremount,nfsvers=3 192.168.133.130:/tmp/ /mnt/
  • 方法2:
  • 更改/etc/idmapd.conf配置文件,客戶端和服務端都需要.
  • 編輯/etc/idmapd.conf配置文件:
    vim /etc/idmapd.conf
    把"#Domain = local.domain.edu"改爲"Domain = xxx.com"(這裏的xxx.com,隨意定義),然後再重啓rpcidmapd服務(centos7中沒有rpcidmapd,重啓rpcbind則可).

15.1 FTP介紹

  • FTP是File Transfer Protocol(文件傳輸協議,簡稱文傳協議)的英文簡稱, 用於在Internet上控制文件的雙向傳輸。
  • FTP的主要作用就是讓用戶連接一個遠程計算機(這些計算機上運行着FTP服務器程序), 並查看遠程計算機中的文件 , 然後把文件從遠程計算機複製到本地計算機 , 或把本地計算機的文件傳送到遠程計算機。
  • 小公司用的多,大企業不用FTP,因爲不安全。

15.2/15.3 使用vsftpd搭建ftp

  • 這兩小節學習使用centos自帶vsftpd來搭建ftp.
  • 安裝vsftpd
    yum install -y vsftpd
  • 創建用於ftp連接用的用戶(出於安全考慮,這裏使用虛擬用戶)
    useradd -s /sbin/nologin virftp
  • 創建vsftpd密碼文件:
    vim /etc/vsftpd/vsftpd_login
  • 增加內容如下(奇數行爲用戶名,偶數行爲密碼,多個用戶就寫多行):
    testuser1
    aminglinux
  • 更改vsftpd密碼文件權限爲600:
    chmod 600 /etc/vsftpd/vsftpd_login
  • 將文本形式的密碼文件轉換成計算機能識別的二進制文件:
    db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
  • 創建虛擬用戶配置文件:
    mkdir /etc/vsftpd/vsftpd_user_conf
    cd /etc/vsftpd/vsftpd_user_conf
    vim testuser1
  • 加入如下內容(此處配置文件名字須和密碼文件中的用戶名字保持一致):
    local_root=/home/virftp/testuser1
    anonymous_enable=NO
    write_enable=YES
    local_umask=022
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    idle_session_timeout=600
    data_connection_timeout=120
    max_clients=10
  • 創建虛擬用戶的家目錄:
    mkdir /home/virftp/testuser1
    touch /home/virftp/testuser1/aming.txt
    chown -R virftp:virftp /home/virftp
  • 定義密碼文件所在位置:
    vim /etc/pam.d/vsftpd
  • 在文件的最前面加上如下內容:
    auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
    account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
  • 編輯vsftpd主配置文件:
    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
    virtual_use_local_privs=YES
    user_config_dir=/etc/vsftpd/vsftpd_user_conf
    allow_writeable_chroot=YES
  • 啓動vsftpd服務:
    systemctl start vsftpd
  • 查看vsftpd服務
    ps aux | grep vsftp
    2018-3-27 Linux學習筆記
  • 查看監聽的端口(21端口):
    netstat -lntp
    2018-3-27 Linux學習筆記

  • 測試ftp
    yum install -y lftp
    lftp [email protected]
  • 執行命令ls,看是否正常輸出.
    2018-3-27 Linux學習筆記
  • 若不正常查看日誌/var/log/messages和/var/log/secure
  • 也可以windows下安裝filezilla客戶端軟件, 進行測試.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章