1. 程式人生 > >2018-3-27 14周2次課 NFS(下)、FTP(上)

2018-3-27 14周2次課 NFS(下)、FTP(上)

NFS FTP

14.4 exportfs命令


·更改nfs配置文件後,重啟nfs服務,那麽此時如果有遠程客戶端正在掛載共享目錄,那麽先停止nfs服務,就會導致遠程客戶端掛起。

exportfs這個命令是和nfs-utils這個包一起安裝的


exportfs:

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

-r 重新掛載

-u 卸載某一個目錄

-v 顯示共享目錄

-arv 一般同時使用


·在服務端上更改/etc/exports 目錄,增加一條共享目錄

[root@localhost ~]# vim /etc/exports

技術分享圖片

[root@localhost ~]# exportfs -arv
exporting 192.168.65.129:/tmp
exporting 192.168.65.0/24:/home/nfstestdir


·在客戶端上查看共享目錄,並卸載原先目錄,掛載/tmp/:

[root@localhost ~]# showmount -e 192.168.65.128
Export list for 192.168.65.128:
/home/nfstestdir 192.168.65.0/24
/tmp             192.168.65.129
[root@localhost ~]# umount /mnt/
[root@localhost ~]# mount -t nfs 192.168.65.128:/tmp/ /mnt
[root@localhost ~]# df -h
文件系統             容量  已用  可用 已用% 掛載點
/dev/sda3             18G  3.8G   15G   21% /
devtmpfs             479M     0  479M    0% /dev
tmpfs                489M     0  489M    0% /dev/shm
tmpfs                489M  6.7M  482M    2% /run
tmpfs                489M     0  489M    0% /sys/fs/cgroup
192.168.65.128:/tmp   18G  3.8G   15G   21% /mnt
/dev/sda1            197M   97M  100M   50% /boot
tmpfs                 98M     0   98M    0% /run/user/0

(192.168.65.128:/tmp 已掛載完成)


·在客戶端上新建一個文件

[root@localhost ~]# vim /mnt/1212.txt
[root@localhost ~]# ll /mnt/1212.txt
-rw-r--r-- 1 root root 39 3月  20 21:56 /mnt/1212.txt


·查看服務端上共享過去的該文件信息:

[root@localhost ~]# ll /tmp/1212.txt
-rw-r--r-- 1 root root 39 3月  20 21:56 /tmp/1212.txt

(客戶端和服務端上的屬主和屬組都是root,是因為在nfs配置文件中,定義了對/tmp共享目錄下,no_root_squash不限制root)


一般不限制root的情況比較多。





14.5 NFS客戶端問題


NFS 4版本會有該問題(尤其是在CentOS6上)

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

要解決問題有2種方法:

1:

客戶端掛載時加上 -o nfsvers=3 (指定nfs版本為3)

mount -t nfs -o nfsvers=3 192.168.65.128:/tmp/ /mnt

mount -t nfs -oremount,nfsvers=3 192.168.65.128:/tmp/ /mnt (須在重新掛載後才能remount)


2:

客戶端和服務端都需要

vim /etc/idmapd.conf //

把“#Domain = local.domain.edu” 改為 “Domain = xxx.com” (這裏的xxx.com,隨便定義吧),然後再重啟rpcidmapd服務,CentOS7中沒有次服務,直接重啟rpcbind就行





15.1 FTP介紹


·FTP是File Transfer Protocol(文件傳輸協議,簡稱文傳協議)的英文簡稱,用於在Internet上控制文件的雙向傳輸。

·FTP的主要作用就是讓用戶連接一個遠程計算機(這些計算機上運行著FTP服務器程序),並查看遠程計算機中的文件,然後把文件從遠程計算機復制到本地計算機,或把本地計算機的文件傳送到遠程計算機。

·小公司用的多,大企業不用FTP,因為不安全





15.2/15.3 使用vsftpd搭建ftp


CentOS自帶vsftpd包

[root@localhost ~]# yum install -y vsftpd
(安裝過程省略)
[root@localhost ~]# useradd -s /sbin/nologin virftp                ##創建虛擬用戶
編輯虛擬用戶的密碼文件:
[root@localhost ~]# vim /etc/vsftpd/vsftpd_login

(內容如下,奇數行為用戶名,偶數行為密碼,多個用戶就寫多行)

技術分享圖片

[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 ~]# mkdir /etc/vsftpd/vsftpd_user_conf        ##創建虛擬用戶配置文件所在目錄
[root@localhost ~]# cd !$
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 umask

anon_upload_enable=NO 是否允許匿名用戶上傳

anon_mkdir_write_enable=NO 是否允許匿名用戶創建和上傳

idle_session_timeout=600 超時斷開

data_connection_timeout=120 數據傳輸超時時間

max_clients=10 最大客戶端


[root@localhost vsftpd_user_conf]# mkdir /home/virftp/testuser1        ##創建虛擬用戶家目錄
[root@localhost vsftpd_user_conf]# touch /home/virftp/testuser1/alex.txt
[root@localhost vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
[root@localhost vsftpd_user_conf]# vim /etc/pam.d/vsftpd                ##定義密碼文件位置

技術分享圖片

[root@localhost vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf            ##編輯vsftpd主配置文件

將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

技術分享圖片

[root@localhost vsftpd_user_conf]# systemctl start vsftpd
[root@localhost vsftpd_user_conf]# ps aux|grep vsftpd
root       1938  0.0  0.0  53212   572 ?        Ss   22:08   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       1942  0.0  0.0 112676   984 pts/0    S+   22:08   0:00 grep --color=auto vsftpd
[root@localhost vsftpd_user_conf]# netstat -lntp

技術分享圖片


·安裝ftp客戶端

[root@localhost vsftpd_user_conf]# yum install -y lftp
(過程省略)
[root@localhost vsftpd_user_conf]# lftp [email protected]
口令:
lftp [email protected]:~> ls
-rw-r--r--    1 1002     1002            0 Mar 26 13:34 alex.txt
lftp [email protected]:/> ?                        ##查看可用的命令

技術分享圖片

lftp [email protected]:/> quit
[root@localhost vsftpd_user_conf]# ls
alex.txt  testuser1


新建一個會話,ip為本機服務器ip,用SFTP連接

技術分享圖片


輸入用戶名密碼登錄

sftp:/root> get /tmp/user.sql
Fetching /tmp/user.sql to user.sql
sftp: received 7.08 KB in 0.01 seconds

定義本地文件夾:(get的文件存放位置)

技術分享圖片


還有一個方法:

在xshell中,Ctrl + Alt + F ,下載xftp插件

技術分享圖片

下載插件安裝

技術分享圖片

可能需要Product key才能使用



2018-3-27 14周2次課 NFS(下)、FTP(上)