exportfs命令,NFS客戶端問題,FTP介紹,使用vsftp搭建ftp
筆記內容:
14.4 exportfs命令
14.5 NFS客戶端問題
15.1 FTP介紹
15.2/15.3 使用vsftpd搭建ftp
筆記日期:
14.4 exportfs命令
這個exportfs命令會在安裝nfs-util包時一起安裝,當服務端需要停止NFS服務或者進行一些變動並重啟時,其他掛載了共享目錄的機器需要將這個掛載的目錄卸載掉,不然的話服務進程就會出問題,單臺機器我們可以使用unmnt命令去卸載,但是如果有幾十臺機器的話總不能一個個去unmnt吧,所以這個exportfs命令就是用來進行多臺機器的卸載、重新掛載之類的操作的。
在服務端上執行exportfs -arv就能把共享目錄卸載掉:
現在去客戶端就會發現共享目錄沒有了:
然後再去服務端編輯/etc/exports文件增加以下內容,新增一個共享目錄:
/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)
在服務端執行exportfs -arv重新掛載:
然後到客戶端showmount一下:
可以看到無需重新啟動NFS服務器也能掛載共享目錄,這樣避免重啟服務帶來的問題。
現在客戶端就可以把共享目錄掛載到本地的mnt上了:
mount -t nfs 192.168.77.128:/tmp/ /mnt/
現在客戶端上的mnt就是服務端的tmp目錄。
在客戶端上的mnt目錄創建一個文件,並在文件中隨便寫上一些內容:
vim /mnt/test.txt
創建好後ls -l /mnt/可以看到文件的屬主和屬組都是root:
而在服務端上的這個文件的屬主和屬組也是root:
這是因為在服務端上的exports配置文件中配置的是no_root_squash,所以在這個共享目錄下的權限就是root,這就是no_root_squash這個選項的作用。
14.5 NFS客戶端問題
NFS有一個偶爾可能會遇到的問題,在CentOS6的時候遇到的比較多,不過只有NFS 4版本才會有該問題,這個問題就是:客戶端掛載共享目錄後,不管是root用戶還是普通用戶,創建新文件時屬主、屬組都為nobody。
也就是說即便在服務端的exports配置文件中定義的是no_root_squash選項,但是客戶端在共享目錄下創建新文件時屬主、屬組卻是為nobody。
這個問題有兩種解決方案:
客戶端掛載時加上 -o nfsvers=3,這是指定nfs的版本為3,不使用4版本。
為了確保沒問題可以再remount一下:
客戶端和服務端都需要修改etc/idmapd.conf配置文件:
vim /etc/idmapd.conf
把配置文件中的“#Domain = local.domain.edu” 改為 “Domain = xxx.com” (這裏的xxx.com,隨意定義吧),然後再重啟rpcidmapd服務,在CentOS7中為rpcbind服務。
15.1 FTP介紹
FTP 和NFS類似,也是文件共享傳輸相關的一種服務,FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上傳"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上傳"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。
我們都知道xshell支持rz和sz命令,可以讓windows和Linux機器互相傳輸文件,但是這種傳輸方式有限制,例如超過四個G的文件就無法傳輸,又或者通過跳板機登錄的一臺遠程服務器,也無法使用rz和sz命令來傳輸文件。這種情況下就可以使用FTP來解決這個問題。
我們可以在遠程服務器上搭建一個FTP服務,如果Windows作為客戶端就可以下載一個客戶端軟件,連接上服務器的FTP服務,然後就可以進行互傳文件了,這種就叫FTP服務器。
但是如果在企業應用中,大企業的話是不使用FTP的,因為不是很安全,而且對於版本管理上並不是很好,所以一般只有小公司或者個人的網站之類的會使用FTP。大企業都是使用自動化發布類似於git這種能夠很好地進行版本控制的服務平臺。
15.2/15.3 使用vsftpd搭建ftp
介紹完FTP後,下面我們自己通過vsftpd搭建一個ftp服務,CentOS上會自帶有vsftpd包,只需要通過yum安裝即可:
yum install -y vsftpd
然後創建virftp,作為這個服務的映射用戶:
useradd -s /sbin/nologin virftp
雖然vsftpd可以直接使用系統級別的用戶,但是這樣做不安全,所以我們要創建虛擬用戶去映射這個普通用戶,而虛擬用戶是可以映射多個的,由於創建普通用戶時候指定了 /sbin/nologin,這樣的話即便有賬戶和密碼也無法登陸系統,這樣能夠提高安全性,編輯vsftpd_login文件,這是虛擬用戶的密碼文件:
vim /etc/vsftpd/vsftpd_login
內容如下,奇數行為用戶名,偶數行為密碼,多個用戶就寫多行:
testuser1
123456abc
保存退出後給這個文件授予600權限,因為這是密碼文件不能給所有的用戶都可以讀:
chmod 600 /etc/vsftpd/vsftpd_login
接著就是把這個密碼文件轉換成二進制文件,轉換命令如下:
db_load -T -t hash -f /etc/vsftpd/vsftpd_login
創建虛擬用戶的配置文件所在的目錄:
mkdir /etc/vsftpd/vsftpd_user_conf
進入到該目錄:
cd /etc/vsftpd/vsftpd_user_conf
創建一個配置文件,這個配置文件的名稱必須和你在vsftpd_login文件裏定義的用戶名一致:
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 -p /home/virftp/testuser1
在家目錄下創建一個文件,等會登錄虛擬用戶時就能看到這個文件:
touch /home/virftp/testuser1/aming.txt
修改virftp家目錄的權限,因為虛擬用戶要映射到這個用戶上:
chown -R virftp:virftp /home/virftp
編輯/etc/pam.d/vsftpd 文件,這個文件用來認證登錄用戶的。在這個文件裏需要指定用戶的密碼文件的路徑在哪,通過這個密碼文件去對比登錄用戶的賬戶密碼:
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
註意:如果/lib64/security/pam_userdb.so不存在的話是無法進行驗證的,CentOS6的話是不在lib64目錄下的。
接著編輯vsftpd.conf文件,這是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 //告訴vsftpd服務使用的是虛擬用戶
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
修改完後就可以啟動vsftpd服務了:
systemctl start vsftpd
監聽的是21端口:
到此為止我們的FTP服務就搭建完成了,接下來就是進行測試環節。
測試需要安裝一個客戶端,在windows上可以下載filezilla,Linux則可以安裝lftp作為客戶端,下面在Linux上演示一下:
yum -y install lftp
安裝好後就可以通過lftp命令登錄虛擬用戶了:
輸入 ? 可以看到支持使用哪些命令:
最常用的兩個命令就是put和get,put是上傳文件,get是下載文件,例如我們get一下aming.txt這個文件,然後退出客戶端,可以看到默認會get到當前目錄下:
最後介紹一下如何使用Xshell實現與ftp相似的功能,有兩種方式:
新建一個會話:
屬性編輯如下:
設置一下文件的保存路徑,我這裏是定義在桌面上:
然後點擊確定,接著連接虛擬機:
輸入用戶和密碼後,登錄到服務器上:
默認是登錄到root目錄下:
可以get一個文件(前提是此文件沒有過高的權限):
如圖就是get成功了。
文件也保存到桌面上了:
因為以上這種是命令行的方式,不夠直觀,除此之外的第二種方式就是下載一個插件,這個插件是Xftp,能夠實現圖形化的效果,按Ctrl + Alt + F 快捷鍵能夠彈出Xftp的下載窗口:
具體的安裝和使用會在下一篇介紹。
本文出自 “zero” 博客,請務必保留此出處http://zero01.blog.51cto.com/12831981/1978472
exportfs命令,NFS客戶端問題,FTP介紹,使用vsftp搭建ftp