exportfs命令,NFS客戶端問題,FTP介紹,使用vsftpd搭建ftp

exportfs命令

exportfs命令用來管理當前NFS共享的文件系統列表。
常用選項
-a:全部卸載或全部掛載
-r:重新掛載
-u:卸載某個目錄
-v:顯示共享目錄
常用組合:exportfs -arv
服務端更改配置文件後,不重啓服務,直接執行該命令就可以使更改後的配置文件生效。
注意: 在重啓nfs服務之前需要先將所有掛載點卸載,否則將發生程序錯誤,嚴重者會拖垮系統。
以上操作都在服務端進行!
測試
在服務端的/etc/exports配置文件中,增加一行。把/tmp/目錄單獨共享給192.168.1.107這個ip。

[root@localhost ~]# vim /etc/exports
......
/tmp 192.168.1.107(rw.sync,no_root_squash)

重新使配置文件生效:
[root@localhost ~]# exportfs -arv
exporting 192.168.1.107:/tmp
exporting 192.168.1.0/24:/home/nfstestdir

檢查客戶端是否有權限訪問服務端文件:
[root@localhost ~]# showmount -e 192.168.1.107
Export list for 192.168.1.107
/home/nfstestdir 192.168.1.0/24
/tmp 192.168.1.107
// 發現並沒有重啓nfs服務,配置就已經生效了

在客戶端上將tmp目錄掛載到mnt目錄下
[root@localhost ~]# mount -t nfs 192.168.1.107:/tmp/ /mnt/

[root@localhost ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
......192.168.159.131:/tmp 16G 5.2G 11G 33% /mnt
// 現在客戶端服務器上的/mnt/目錄就是服務端服務器的/tmp/目錄

在客戶端的/mnt/目錄下創建文件,並查看目錄下的文件,能看到新建的文件1.txt和2.txt文件的屬組屬主都是root
[root@localhost ~]# touch /mnt/1.txt
[root@localhost ~]# ls -l /mnt
總用量 0
-rw-r--r--. 1 root root 0 1月 17 21:15 1.txt

再看服務端的/tmp/目錄,1.txt文件的屬組和屬主也都是root
[root@localhost ~]# ls -l /tmp/
總用量 0
-rw-r--r--. 1 root root 0 1月 17 21:15 1.txt
這是因爲服務端的配置文件中,使用了no_root_squash,所以root用戶就不受約束,在客戶端上的掛載點下就可以想在本地盤使用root用戶一樣,是不受限制的(通常情況下,不限制root用戶的比較多。)

NFS客戶端問題

NFS 4版本會有該問題
客戶端掛載共享目錄後,不管是root用戶還是普通用戶,創建新文件時屬主、屬組爲nobody
客戶端掛載時加上 -o nfsvers=3
客戶端和服務端都需要
vim /etc/idmapd.conf //
把“#Domain = local.domain.edu” 改爲 “Domain = xxx.com” (這裏的xxx.com,隨意定義吧),然後再重啓rpcidmapd服務
在centos6中,遇到的問題比較多,針對的NFS 4版本有這個問題
問題:客戶端掛載共享目錄後,不管是root用戶還是普通用戶,創建新文件時屬主、屬組爲nobody,雖然已經定義了 no_root_squash 不在限制root用戶,最終創建完文件後發現屬主和屬組不是root或者是限定的1000,而是顯示的是 nobody ,這就是NFS 4版本出現的問題,尤其是在centos6 系統上

解決辦法:
方法一:是在客戶端掛載的時候,加上-o nfsvers=3 ,意思就是指定NFS的版本爲 3 ,不在用4的版本
mount -t nfs -o nfsvers=3 192.168.202.130:/tmp/ /mnt/
若是不想卸載,直接掛載,可以使用mount -t nfs -oremount,nfsvers=3 192.168.202.130:/tmp/ /mnt/ (前提是先掛載上去)
方法二:更改配置文件vim /etc/idmapd.conf ,把“#Domain = local.domain.edu” 改爲 “Domain = xxx.com” (這裏的xxx.com,隨意定義吧),然後再重啓rpcidmapd服務
在cnetos7中,本身是沒有rpcidmapd服務的,只需要重啓rpcbind服務就可以了

FTP 介紹

FTP(file transfer protocol)文件傳輸協議,用於在Internet上控制文件的雙向傳輸。FTP主要作用是讓用戶連接一個遠程計算機(這些計算機上運行着FTP服務器程序)查看遠程計算機有哪些文件,然後把文件從遠程計算機上拷貝到本地計算機,或把本地文件傳送到遠程計算機。
該服務在小公司用的比較多,由於FTP服務的安全性較差,所以大公司不使用該服務。

使用vsftpd 搭建ftp服務

centos 上自帶vsftpd 軟件包
安裝
[root@localhost ~]# yum install -y vsftpd

創建用戶

vsftpd可以使用系統級別的用戶進行登錄,但是這樣做不安全,所以需要使用vsftpd創建一個虛擬用戶。在此創建一個系統普通用戶的作用是使vsftpd的虛擬用戶來進行映射,然後完成數據的傳輸。

[root@localhost ~]# useradd -s /sbin/nologin virftp

編輯虛擬用戶的密碼文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd_login
testuser1
123456
user1
112233
// 注意,配置文件中的奇數行爲用戶名,偶數行爲密碼。

配置完需要給密碼文件配置權限
[root@localhost ~]# chmod 600 /etc/vsftpd/vsftpd_login

將文本形式的密碼文件轉化成計算機識別的二進制文件

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@localhost ~]# ls -l /etc/vsftpd/
......
-rw-------. 1 root root 30 1月 17 15:08 vsftpd_login
-rw-r--r--. 1 root root 12288 1月 17 15:12 vsftpd_login.db
// 生成了一個vsftpd_login.db 文件,這個文件是不能cat的

創建虛擬用戶配置文件

創建配置文件目錄:
[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf

切換到新建目錄下:
[root@localhost ~]# cd /etc/vsftpd/vsftpd_user_conf/

創建第一個用戶的配置文件:
[root@localhost 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
// 空閒用戶保留時間,600秒無操作自動斷開。
data_connection_timeout=120
// 數據傳輸超時時間
max_client=10
// 客戶端最大連接數量

創建虛擬用戶家目錄

創建虛擬用戶家目錄:
[root@localhost vsftpd_user_conf]# mkdir /home/virftp/testuser1

創建一個文件,登錄時可以看見
[root@localhost vsftpd_user_conf]# touch /home/virftp/testuser1/testftp.txt

修改虛擬用戶家目錄的屬主屬組:
[root@localhost vsftpd_user_conf]# chown -R virftp:virftp /home/virftp

編輯vsftpd的認證文件:
[root@localhost vsftpd_user_conf]# vim /etc/pam.d/vsftpd
// 這個是登錄ftp時的認證文件。
// 將下面兩行代碼加在文件開頭
#%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

// 這兩行代碼用於指定用戶密碼文件位置

// 在centos6中因爲區分32位和64版本,所以注意文件是在lib32還是lib64中。如果是32位,路徑寫了lib64,導致服務啓動失敗。

編輯vsftpd主配置文件

[root@localhost vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf 
......
anonymous_enable=NO
// 由YES改成NO。不允許匿名用戶登錄
anon_upload_enable=NO
// 取消前面的註釋,由YES改成NO。不允許匿名用戶上傳文件。
anon_mkdir_write_enable=NO
// 取消前面的註釋,由YES改成NO。不允許創建目錄
......
在文件最後加入下面內容:
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
// 開啓虛擬用戶和系統用戶的映射
virtual_use_local_privs=YES
// 告訴服務使用虛擬用戶
user_config_dir=/etc/vsftpd_user_conf
// 定義虛擬用戶配置文件路徑
allow_writeable_chroot=YES

啓動服務

啓動服務:
[root@localhost vsftpd_user_conf]# systemctl start vsftpd

查看進程:
[root@localhost vsftpd_user_conf]# ps aux | grep vsftp
root 2795 0.0 0.0 53216 572 ? Ss 16:11 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 2797 0.0 0.0 112680 976 pts/0 R+ 16:11 0:00 grep --color=auto vsftp
// 進程已經存在

查看監聽端口:
[root@localhost vsftpd_user_conf]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp6 0 0 :::21 :::* LISTEN 2795/vsftpd

// vsftpd 服務監聽21端口
// FTP服務監聽21端口;sshd監聽22端口;telnet監聽23端口。

測試

安裝linux下的ftp客戶端:
[root@localhost ~]# yum install -y lftp

使用虛擬用戶登錄ftp客戶端:
[root@localhost ~]# lftp [email protected]
口令:

lftp [email protected]:~> ls
drwxr-xr-x 2 1004 1005 25 Jan 17 07:24 testuser1
lftp [email protected]:/> ls testuser1
-rw-r--r-- 1 1004 1005 0 Jan 17 07:24 testftp.txt
// 使用ls命令查看虛擬用戶家目錄下的文件有哪些,發現之前創建的文件。
// ls 報錯500,沒有關閉selinux

lftp [email protected]:/> ?
// ? 可以查看ftp支持哪些命令。

將testftp.txt 傳輸到本機:
lftp [email protected]:/> get testuser1/testftp.txt
lftp [email protected]:/> quit
[root@localhost ~]# ls
testftp.txt

// 接受文件的目錄爲當前目錄,即進入ftp服務的目錄。
// 常用的命令put、get

windows 上可以使用filezilla 軟件測試ftp服務。

使用xshell實現FTP功能

o方法一:使用sftp
新建會話→名稱自定→協議選擇SFTP→主機爲遠程主機ip→端口號默認22。
連接遠程主機,使用常用的用戶名密碼,即可登錄ftp。
右鍵遠程連接屬性,sftp可以設置下載的文件存放位置
方法二:使用xftp
在xshell中退出當前會話使用組合鍵:Ctrl+Alt+F,提示下載,下載安裝後即可使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章