14.5 NFS客戶端問題
15.1 FTP介紹
15.2/15.3 使用vsftpd搭建ftp
NFS服務不能隨便重啓,在重啓前必須把正在遠程讀寫的目錄掛載卸掉
停止掛載出現busy情況 ①退出/mnt目錄 再umount /mnt/
②懶漢模式 umount -l /mnt/
如果有幾十臺機器在掛載,可以通過exportfs命令簡化
服務器端上exportfs -arv顯示出共享目錄,再到客戶端上執行showmount命令,發現無需重啓nfs服務,/tmp/文件夾也被共享出去了
在客戶端上把服務器端的/tmp/掛載到/mnt/目錄下mount -t nfs 192.168.242.128:/tmp/ /mnt/被拒絕
發現是端口號超過1024,man exports定義中發現當端口號高於1024時會被認爲非法,此時需要在服務器端的/etc/exports文件中加入insecure選項,並重啓nfs服務:service nfs restart
參見: https://blog.csdn.net/kelvindream/article/details/53858214
還是拒絕,後面網上搜了加了一個規則no_subtree_check,網段開放到192.168.242.*如下圖所示
無需重啓nfs服務,再次服務器端執行exportfs -arv,客戶端showmount -e 192.168.242.128:/tmp/ /mnt/
把服務器端/tmp/掛載到客戶端/mnt/下:mount -t nfs 192.168.242.128:/tmp/ /mnt/
這時發現兩者是同步的,客戶端也可以讀寫/tmp/目錄了(掛載於客戶端的/mnt/目錄下)
測試:
在客戶端下的/mnt/創建一個新文件,同步成功,服務器端也有test.txt,在/etc/exports文件中加入 no_root_squash不限制root用戶選項時:達到的效果是在客戶端上創建的文件也是root用戶主和組,通常情況下不限制
NFS客戶端問題
如果出現上述問題,(客戶端掛載後,不管是普通用戶還是root用戶,創建新用戶時所屬主和組都爲nobody)解決辦法
①在掛載選項中加入-o nfsvers=3如果已經掛載需要umount 再加上
②編輯 /etc/idmapd.conf找到Domain,把註釋符#去掉,後面可以自定義,重啓rpcidmapd服務,在CentOS7中沒有該服務,重啓rpcbind服務即可
FTP介紹
vsftpd搭建FTP
給ftp設置一個虛擬用戶,映射成系統的一個普通用戶(vsftpd服務支持系統用戶)
①添加一個用戶: useradd -s (指定shell) /sbin/nologin (處於安全,該用戶不讓登錄系統)virftp(可以隨意取)
②給虛擬用戶定義用戶名和密碼:vim /etc/vsftpd/vsftpd_login(其中奇數行是用戶名,偶數行是密碼)
③更改密碼文件權限:chmod 600 /etc/vsftpd/vsftpd_login
④把文本密碼文件vsftpd_login轉換成計算機可識別的二進制文件:
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
⑤創建虛擬用戶配置文件所在的目錄(自定義)mkdir /etc/vsftpd/vsftpd_user_conf ,進入目錄並定義配置文件,和之前定義的用戶名保持一致(如testuser1,testuser2)
⑥加入如下配置內容
local_root:定義虛擬用戶的家目錄
⑦創建虛擬用戶的家目錄:mkdir /home/virftp/testuser1; touch liut.txt
⑧修改權限:chown -R virftp:virftp /home/virftp
⑨定義密碼文件位置:vim /etc/pam.d/vsftpd加上兩行 (在登錄ftp時認證用戶名和密碼的存放處)
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
查看 /lib64/security/pam_userdb.so 是否存在
⑩編輯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
最後啓動vsftpd服務
監聽端口ftp 21, ssh 22 telnet 23
測試:
在windows上安裝filezilla client如下圖,不要安裝filezilla server(搭建服務用的)
輸入Linux主機IP,用戶名,密碼,端口22,如下圖建立連接成功
在linux上使用lftp測試:yum install -y lftp
lftp [email protected]結果報錯
意思是需要到ftp虛擬用戶配置文件中找到帶有vim testuser1字樣的行,刪除(虛擬用戶配置文件路徑爲/etc/vsftpd/vsftpd_user_conf/testuser1)
如上圖所示,測試成功,“?”可查看所支持的命令
如何使用Xshell實現FTP功能
①sftp
如下圖設置,並ssh選項中設置默認本地/遠程傳送路徑
登錄測試:默認root用戶和密碼
get測試成功
②在Xshell頁面Ctrl Alt f 彈出需要安裝xftp,下載安裝,再輸入root用戶名和密碼出現如下界面,連接建立成功