14.4 exportfs命令
- exportfs命令是隨nfs-utils安裝包一起安裝的.
- 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) - exportfs -arv #執行後不用重啓nfs服務,配置文件就會生效
- 客戶端上的操作:
- showmount -e 192.168.133.130 #IP爲NFS服務端的IP地址
- mount -t nfs 192.168.133.130:/tmp/ /mnt/ #掛載服務端的/tmp目錄
- touch /mnt/1212.txt
- ls -l /mnt/
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 - 查看監聽的端口(21端口):
netstat -lntp
- 測試ftp
yum install -y lftp
lftp [email protected] - 執行命令ls,看是否正常輸出.
- 若不正常查看日誌/var/log/messages和/var/log/secure
- 也可以windows下安裝filezilla客戶端軟件, 進行測試.