exportfs命令, vsftp搭建ftp服務

exportfs命令

當修改/etc/exports文件後,更改的內容是不會立即生效的。如果重啓nfs服務,會導致客戶端重啓期間的請求是掛起等待的,可以把客戶端的掛載umount進行卸載後,再重啓nfs服務,但是如果掛載的客戶端比較多時,這樣就比較麻煩了。這時,就可以使用exportfs命令重新加載配置。

常用選項

  • -a 全部掛載或者全部卸載
  • -r 重新掛載
  • -u 卸載某一目錄
  • -v 顯示共享目錄

服務端操作

[root@test-a ~]# vim /etc/exports  # 新增一個NFS服務
[root@test-a ~]# cat /etc/exports
/home/nfstestdir 192.168.77.0/24(rw,sync,all_squash,anonuid=1003,anongid=1003)
/tmp/ 192.168.77.129(rw,sync,no_root_squash)
[root@test-a ~]# exportfs -arv  # 全區重新加載,這時客戶端可以查看到新的NFS服務並進行掛載
exporting 192.168.77.129:/tmp
exporting 192.168.77.0/24:/home/nfstestdir

[root@test-a ~]# ls /tmp/abc.txt -l # 客戶端創建的文件
-rw-r--r--. 1 root root 0 Dec 10 00:57 /tmp/abc.txt

客戶端操作

[root@centos0 mnt]# showmount -e 192.168.77.134  # NFS服務器重新加載後
Export list for 192.168.77.134:
/home/nfstestdir 192.168.77.0/24
/tmp             192.168.77.129
[root@centos0 mnt]# mkdir /tmp/share
[root@centos0 mnt]# mount -t nfs 192.168.77.134:/tmp/ /tmp/share # 掛載
[root@centos0 mnt]# touch /tmp/share/abc.txt # 創建文件
[root@centos0 mnt]# ls /tmp/share/abc.txt -l
-rw-r--r--. 1 root root 0 12月 10 00:57 /tmp/share/abc.txt

客戶端文件屬主屬組nobody問題解決

一般是NFS 4版本會有該問題,客戶端掛載共享目錄後,不管是root用戶還是普通用戶,創建新建文件時屬主、屬組爲nobody。解決方法有兩種
方法 1: 客戶端掛載時加上-o nfsvers=3,指定使用NFS 3版本。(-o remount,nfsvers=3 直接重新掛載)
方法 2: 客戶端和服務器都需要編輯 /etc/idmapd.conf, 把 "#Domain = local.domain.edu" 改爲 "Domian = xxx.com" (xxx.com隨意定義),然後重啓rpcidmapd服務。

FTP介紹

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

使用vsftpd搭建ftp服務

[root@test-a ~]# yum isntall -y vsftpd  
[root@test-a ~]# useradd -s /sbin/nologin ftpuser01 # 創建一個不能登錄的用戶  
[root@test-a ~]# vim /etc/vsftpd/vsftpd_login # 設置虛擬賬戶的用戶名密碼,奇數行是用戶名,偶數行是對應的密碼
[root@test-a ~]# cat /etc/vsftpd/vsftpd_login
virftpuser01
test111
[root@test-a ~]# chmod 600 /etc/vsftpd/vsftpd_login # 更改權限
[root@test-a ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db  # 生成計算機可以設別的二進制文件
[root@test-a ~]# ls -l /etc/vsftpd/
total 32
-rw-------. 1 root root   125 Oct 31 03:45 ftpusers
-rw-------. 1 root root   361 Oct 31 03:45 user_list
-rw-------. 1 root root  5116 Oct 31 03:45 vsftpd.conf
-rwxr--r--. 1 root root   338 Oct 31 03:45 vsftpd_conf_migrate.sh
-rw-------. 1 root root    21 Dec 11 06:47 vsftpd_login
-rw-r--r--. 1 root root 12288 Dec 11 06:50 vsftpd_login.db

[root@test-a ~]# mkdir /etc/vsftpd/vsftpd_user_conf # 創建虛擬用戶的配置目錄
[root@test-a ~]# cd /etc/vsftpd/vsftpd_user_conf
[root@test-a vsftpd_user_conf]# vim virftpuser01 # 創建虛擬用戶的配置文件
[root@test-a vsftpd_user_conf]# cat virftpuser01
local_root=/home/ftpuser01/virftpuser01
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


[root@test-a vsftpd_user_conf]# mkdir /home/ftpuser01/virftpuser01 # 創建虛擬用戶的主目錄
[root@test-a vsftpd_user_conf]# touch /home/ftpuser01/virftpuser01/share01.txt # 新建一個測試文件
[root@test-a vsftpd_user_conf]# chown -R ftpuser01:ftpuser01 /home/ftpuser01  # 爲家目錄設置屬主屬組
[root@test-a vsftpd_user_conf]# 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

[root@test-a vsftpd_user_conf]# cat /etc/pam.d/vsftpd
#%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
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ft            pusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

[root@test-a vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf # 再來編輯ftp主配置文件

# 將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=ftpuser01
# virtual_use_local_privs=YES
# user_config_dir=/etc/vsftpd/vsftpd_user_conf
# allow_writeable_chroot=YES

#啓動ftp服務
[root@test-a vsftpd_user_conf]# systemctl start vsftpd
[root@test-a vsftpd_user_conf]# ps aux|grep vsftpd
root     16216  0.0  0.0  51180   568 ?        Ss   07:10   0:00 /usr/sbin/vsftp            d /etc/vsftpd/vsftpd.conf
root     16224  0.0  0.0 112704   976 pts/0    R+   07:10   0:00 grep --color=au            to vsftpd

# 密碼輸入錯誤
[root@test-a vsftpd_user_conf]# lftp [email protected]
Password:
lftp [email protected]:~> ls
ls: Login failed: 530 Login incorrect.
lftp [email protected]:~> exit
# 正確輸入密碼後,可以看到之間創建的文件
[root@test-a vsftpd_user_conf]# lftp [email protected]
Password:
lftp [email protected]:~> ls
-rw-r--r--    1 1009     1010            0 Dec 10 23:00 share01.txt

lftp [email protected]:/> get share01.txt  # 下載到本地的當前目錄
lftp [email protected]:/> exit
[root@test-a vsftpd_user_conf]# ls
share01.txt  virftpuser01

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