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

1. exportfs命令

一般情況下重啓服務器上nfs服務時,需把客戶端上的掛載先卸載掉,以免進程後面殺不掉。當客戶端服務器很多時,操作起來就比較麻煩。此時可以使用exportfs命令重新加載下。

exportfs命令:

是隨nfs-utils 一起安裝的

exportfs 命令用來管理當前NFS共享的文件系統列表。

常用選項:

-a 全部掛載或者全部卸載

-r 重新掛載

-u 卸載某一個目錄

-v 顯示共享目錄

當改變/etc/exports配置文件後,使用exportfs命令掛載不需要重啓nfs服務。

以下操作在服務端上

vim /etc/exports //增加

/tmp/ 172.20.6.240(rw,sync,no_root_squash) //把/tmp目錄單獨共享給172.20.6.240這個主機ip

exportfs -arv //不用重啓nfs服務,配置文件就會生效

172.20.6.240客戶端機器上操作:

showmount -e 192.168.89.51 //查看有權限的共享目錄

mount -t nfs 192.168.89.51:/tmp /mnt //把tmp目錄掛載到/mnt下

2. NFS客戶端問題:

客戶端文件屬主屬組nobody:

NFS 4版本會有該問題

客戶端掛載共享目錄後,不管是root用戶還是普通用戶,創建新文件時屬主、屬組爲nobody

解決方法:

1. 客戶端掛載時加上 -o nfsvers=3

mount -t nfs -oremount,nfsvers=3 192.168.89.51:/home/nfstestdir /mnt //已經掛載不想卸載時可以-oremount 重新掛載。

2. 客戶端和服務端都需要

vim /etc/idmapd.conf //

把“#Domain = local.domain.edu” 改爲 “Domain = xxx.com” (這裏的xxx.com,隨意定義吧),然後再重啓rpcidmapd服務(CentOS 6以上系統重啓rpcbind服務)

3. FTP介紹

ftp應用環境:

  • 一般情況我們和linux服務器數據傳輸時會用到rz/sz命令;
  • rz/sz命令傳輸大文件,比如超過4G時就沒辦法用了;
  • 有跳板機的時候,在用rz/sz傳輸數據時也會出現問題;
  • 在linux上搭建一個ftp服務,然後在主機上裝個ftp客戶端,就可以和linux服務器傳輸文件。這就是ftp服務器

ftp介紹:

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

4. vsftpd搭建ftp

centos上自帶的vsftpd服務:

yum install -y vsftpd

安裝vsftpd軟件包;

useradd -s /sbin/nologin virftp

創建一個ftp映射的賬戶;

創建虛擬用戶密碼文件:

vim /etc/vsftpd/vsftpd_login

新建一個ftp虛擬用戶文件,內容如下,奇數行爲用戶名,偶數行爲密碼,多個用戶就寫多行

user1

1%6eEHPu9

chmod 600 /etc/vsftpd/vsftpd_login

設置權限600;

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

保存虛擬帳號和密碼的文件無法被系統帳號直接調用。我們需要使用db_load 命令生成db庫文件

-T允許應用程序能夠將文本文件轉譯載入進數據庫。

-t hash使用hash碼加密

-f 指定包含用戶名和密碼文本文件。此文件格式要示:奇數行用戶名、偶數行密碼

創建和用戶對應的配置文件:

mkdir /etc/vsftpd/vsftpd_user_conf

創建與虛擬賬號相關的目錄以及配置文件

用戶的配置文件是單獨存在的,每一個用戶都有一個自己的配置文件,文件名和用戶名一致

cd /etc/vsftpd/vsftpd_user_conf

vim user1 //加入如下內容

local_root=/home/virftp/user1

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

其中local_root:爲user1賬號的家目錄;anonymous_enable:用來限制是否允許匿名賬戶登錄(若爲NO,表示不允許匿名賬號登錄);write_enable=YES:表示可寫;local_umask:指定umask值;anon_upload_enable:表示是否允許匿名賬號上傳文件;anon_mkdir_write_enable:表示是否允許匿名賬號可寫;idle_session_timeout:表示空閒多長時間超時;data_connection_timeout=120如果服務器與客戶端的數據聯機已經成功建立 (不論主動還是被動聯機),但是可能由於線路問題導致 120 秒內還是無法順利的完成數據的傳送,那客戶端的聯機就會被我們的 vsftpd 強制剔除;max_clients:有多少 client 可以同時連上 vsftpd;

 

在virftp家目錄下創建以用戶名命名的家目錄:

mkdir /home/virftp/user1

touch /home/virftp/user1/gavin.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

CentOS7爲64位系統,所以庫文件路徑爲/lib64/security/pam_userdb.so(32位系統的庫文件路徑爲/lib/security/pam_userdb.so)

修改全局配置文件/etc/vsftpd/fsftpd.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

user_config_dir=/etc/vsftpd/vsftpd_user_conf

allow_writeable_chroot=YES

systemctl start vsftpd //啓動vsftpd服務

ftp監聽21端口

測試ftp:

linux中ftp客戶端爲lftp;

yum install -y lftp

lftp user1@127.0.0.1

執行命令ls,看是否正常輸出

? 可以查看支持的命令,一般put和get用的比較多

get會把文件下載到當前目錄

若不正常查看日誌/var/log/messages和/var/log/secure

windows下安裝filezilla客戶端軟件,進行測試

ftp://192.168.89.51 通過瀏覽器訪問

 

 

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