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

14.4 exportfs命令php

14.5 NFS客戶端問題linux

15.1 FTP介紹nginx

15.2/15.3 使用vsftpd搭建ftpshell

 

 

 

 

14.4 exportfs命令:vim

 

 

exportfs命令是跟nfs-utils包一塊兒安裝的windows

應用場景:咱們共享了一個目錄,須要更改或者增長目錄,就須要更改配置文件和重啓NFS服務。若是遠程客戶端正在掛載着使用着,若是停掉遠程客戶端就會掛起(nginx或者php),這個影響會很大。就是D進程不可中斷的進程。只能先卸載下來(umount)在重啓NFS,但有幾十臺機器就不合適了。就會使用exportfscentos

 

 

~~1.安全

exportfs經常使用選項服務器

-a 所有掛載或者所有卸載session

通常使用 -arv,就會讓配置文件生效

-r 從新掛載

-u 卸載某一個目錄

-v 顯示共享目錄

如下操做在服務端上

vim /etc/exports //增長

/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)

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

 

~~2.

如下操做在客戶端

mount -t nfs 192.168.208.128:/tmp /tmp

或mount -t nfs -o nfsvers=3 192.168.208.128:/tmp/ /mnt/ #(爲解決已經出現nobody,下一節有講)。要先umonut /mnt/

ls -l !$

-oremount,nfsvers=3 (-o從新掛在完之後,可使用-oremount。不卸載的話不能直接-oremount)

 

 

 

 

實例:

~~1.

[root@axinlinux-01 ~]# vim /etc/exports 打開那個配置文件

/home/nfstestdir 192.168.208.130/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

/tmp 192.168.208.130(rw,sync,no_root_squash) 在下面加入一行配置,選了no_root_squash(不限制root)此時寫的是服務端的IP

[root@axinlinux-01 ~]# exportfs -arv 再exportfs -arv

exporting 192.168.208.130:/tmp

exporting 192.168.208.130/24:/home/nfstestdir 顯示有了

雙方關閉防火牆和selinux,否則會報錯

~~2.

[root@axinlinux-02 ~]# showmount -e 192.168.208.128 在02上showmount看一下有沒有

Export list for 192.168.208.128:

/home/nfstestdir 192.168.208.130/24

/tmp 192.168.208.130 是有的

[root@axinlinux-02 ~]# mount -t nfs 192.168.208.128:/tmp/ /mnt/ 在02上掛載到/mnt(這時的IP寫的是服務端的,就是制定服務端的IP及共享的目錄)到本機的/mnt

此時,02的/mnt就是01的/tmp

[root@axinlinux-02 ~]# df -h 看一下有沒有這個掛載

文件系統 容量 已用 可用 已用% 掛載點

/dev/sda3 28G 1011M 27G 4% /

devtmpfs 907M 0 907M 0% /dev

tmpfs 916M 0 916M 0% /dev/shm

tmpfs 916M 8.6M 908M 1% /run

tmpfs 916M 0 916M 0% /sys/fs/cgroup

/dev/sda1 187M 113M 75M 61% /boot

tmpfs 184M 0 184M 0% /run/user/0

192.168.208.128:/tmp 28G 8.4G 20G 30% /mnt 是有的

[root@axinlinux-02 ~]# vi /mnt/1212.txt 在02上測試一下,在02的掛載點/mnt下建個文件

[root@axinlinux-02 ~]# ls -l /mnt/1212.txt 看一下

-rw-r--r--. 1 root root 18 8月 27 23:32 /mnt/1212.txt 屬主屬組爲root

[root@axinlinux-01 ~]# ls -l /tmp/1212.txt 回到01上看一下

-rw-r--r-- 1 root root 18 8月 27 23:32 /tmp/1212.txt 屬主屬組也是root

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

14.5 NFS客戶端問題:

 

 

~~NFS 4版本會有該問題,尤爲是centos6

~~應用場景:客戶端掛載共享目錄後,不論是root用戶仍是普通用戶,建立新文件時屬主、屬組爲nobody。

方法以下兩種:

~1.

客戶端掛載時加上 -o nfsvers=3 #指定爲3版本

 

~2.客戶端和服務端都須要

vim /etc/idmapd.conf //

把「#Domain = local.domain.edu」 改成 「Domain = xxx.com」 (這裏的xxx.com,隨意定義吧),而後再重啓rpcidmapd服務(在centos7上是沒有rpcidmapd服務的,須要的話重啓rpcbind就能夠)

 

 

 

實例:

[root@axinlinux-02 ~]# umount /mnt/ 先卸載02的掛載點

[root@axinlinux-02 ~]# mount -t nfs -o,nfsvers=3 192.168.208.128:/tmp/ /mnt/ 再 -o,nfsvers=3

[root@axinlinux-02 ~]# mount -t nfs -oremount,nfsvers=3 192.168.208.128:/tmp/ /mnt/ 執行完上一步,才能-umount(沒什麼用,由於上一步已經掛載了,只是爲了體現remount吧)

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

15.1 FTP介紹:

 

 

應用場景:以前接觸過lrzsz(windows與linux互傳)。在文件太大(超過4G)或者,使用阿里雲的機器存在跳板機(一臺機器調到另外一臺機器,中間就有一個跳板機)的狀況下,lrzsz會很差使。

FTP就能夠解決。可讓咱們在linux服務器上,搭建FTP服務。客戶端上(好比windows)安裝一個客戶端軟件。就能夠連到服務端,吧本地的文件傳到服務器上去,也能夠把服務器的文件下載到本地來。這就是FTP服務器

 

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

~2.FTP的主要做用就是讓用戶鏈接一個遠程計算機(這些計算機上運行着FTP服務器程序),並查看遠程計算機中的文件,而後把文件從遠程計算機複製到本地計算機,或把本地計算機的文件傳送到遠程計算機。

~3.小公司用的多,大企業不用FTP,由於不安全 (使用自動化發佈的工具,可理解爲版本的更新上線)

 

 

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

15.2/15.3 使用vsftpd搭建ftp:

 

 

 

centos上自帶的ftp服務軟件包就叫vsftpd

 

~1.centos上自帶vsftpd

~2.yum install -y vsftpd

~3.useradd -s /sbin/nologin virftp

由於建立普通用戶是能夠經過ftp來登陸系統的,這樣不安全。因此要要設置一個虛擬用戶,讓他沒法登陸系統

建立普通用戶的目的就是讓這些虛擬的用戶作一個映射的。就是在上傳或者下載的時候要有一個用戶去執行,就是咱們再次建立的這個用戶

~4.vim /etc/vsftpd/vsftpd_login //內容以下,奇數行爲用戶名,偶數行爲密碼,多個用戶就寫多行

這個文件爲虛擬用戶的密碼文件,定義用戶名和密碼

testuser1

aminglinux

~5.chmod 600 /etc/vsftpd/vsftpd_login

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

db_load將這個密碼文件轉換成計算機識別的二進制文件

.db這個文件是不能直接cat的

~7.mkdir /etc/vsftpd/vsftpd_user_conf

建立虛擬用戶的配置文件所在的目錄,也是自定義的

~8.cd /etc/vsftpd/vsftpd_user_conf

~9.vim testuser1 //加入以下內容 建立第一個用戶的配置文件,用戶的名字要跟上面定義的用戶名保持一致(~4.)

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 #當咱們鏈接ftp空閒時間段,超出600秒斷開(斷開後從新登陸)

data_connection_timeout=120 #數據傳輸的超出時間

max_clients=10 #最大的客戶端是多少

~10. mkdir /home/virftp/testuser1 #建立虛擬用戶的家目錄

touch /home/virftp/testuser1/aming.txt #測試的時候會看到這個文件(lftp)

chown -R virftp:virftp /home/virftp

vim /etc/pam.d/vsftpd //在最前面加上 #用來定義密碼文件在哪裏(這個文件是用來認證的一個文件)。登陸ftp須要有一個認證的過程,什麼樣的形式,去哪裏找密碼庫,比對輸入的用戶密碼對不對

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

紅色標記的這個文件必需要是存在的,64位的

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

~11.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 #虛擬用戶要映射到一個系統的用戶(就是咱們以前操做的)。就使用guest_username

virtual_use_local_privs=YES #告訴服務咱們如今使用的是虛擬服務

user_config_dir=/etc/vsftpd/vsftpd_user_conf #定義虛擬文件配置文件所在的路徑

allow_writeable_chroot=YES

~12.systemctl start vsftpd //啓動vsftpd服務

測試ftp:

~1.yum install -y lftp #爲測試方便咱們在linux上安裝測試軟件

也能夠在windows上安裝ftp客戶端。filezilla client

lftp ftpuser1@127.0.0.1

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

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

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

 

 

 

實例:

[root@axinlinux-01 ~]# yum install -y vsftpd

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

[root@axinlinux-01 ~]# vim /etc/vsftpd/vsftpd_login

testuser1

aminglinux

user1

aminglinux

[root@axinlinux-01 ~]# chmod 600 /etc/vsftpd/vsftpd_login

[root@axinlinux-01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

[root@axinlinux-01 ~]# ls -l /etc/vsftpd/

總用量 36

-rw------- 1 root root 125 8月 3 2017 ftpusers

-rw------- 1 root root 361 8月 3 2017 user_list

-rw------- 1 root root 5030 8月 3 2017 vsftpd.conf

-rwxr--r-- 1 root root 338 8月 3 2017 vsftpd_conf_migrate.sh

-rw------- 1 root root 38 8月 28 22:26 vsftpd_login

-rw-r--r-- 1 root root 12288 8月 28 22:29 vsftpd_login.db

[root@axinlinux-01 ~]# mkdir /etc/vsftpd/vsftpd__user_conf

[root@axinlinux-01 ~]# cd /etc/vsftpd/vsftpd__user_conf/

[root@axinlinux-01 vsftpd__user_conf]#

[root@axinlinux-01 vsftpd__user_conf]# vim testuser1

cat 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

[root@axinlinux-01 vsftpd__user_conf]# mkdir /home/virftp/testuser1

[root@axinlinux-01 vsftpd__user_conf]# touch /home/virftp/testuser1/aming.txt

[root@axinlinux-01 vsftpd__user_conf]# chown -R virftp:virftp /home/virftp

[root@axinlinux-01 vsftpd__user_conf]# vim /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

[root@axinlinux-01 vsftpd__user_conf]# ls /lib64/security/pam_userdb.so #檢查這個文件是存在的

/lib64/security/pam_userdb.so

[root@axinlinux-01 vsftpd__user_conf]# vim /etc/vsftpd/vsftpd.conf

# Allow anonymous FTP? (Beware - allowed by default if you comment this out). #這一行的下一行修改

anonymous_enable=NO 修改成NO

# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access #這一行的下一行修改

anon_upload_enable=NO 註釋去掉,修改成NO

# new directories. #這一行的下一行修改

anon_mkdir_write_enable=NO #註釋去掉,修改成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@axinlinux-01 vsftpd__user_conf]# systemctl start vsftpd

[root@axinlinux-01 vsftpd__user_conf]# ps aux |grep vsftpd

root 2565 0.0 0.0 53256 576 ? Ss 23:11 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

root 2593 0.0 0.0 112720 976 pts/0 S+ 23:14 0:00 grep --color=auto vsftpd

[root@axinlinux-01 vsftpd__user_conf]# netstat -lntp

tcp6 0 0 :::21 :::* LISTEN 2565/vsftpd vsftpd監聽21端口

測試:

[root@axinlinux-01 ~]# yum install -y lftp

[root@axinlinux-01 ~]# lftp testuser1@127.0.0.1

口令:

lftp testuser1@127.0.0.1:~> ls

drwxr-xr-x 2 1008 1008 23 Aug 28 15:43 testuser1

lftp testuser1@127.0.0.1:/> get testuser1/aming.txt

49 bytes transferred

lftp testuser1@127.0.0.1:/> exit

[root@axinlinux-01 ~]# ls

11.txt 22.txt 2.txt aming.txt anaconda-ks.cfg awk axin grep OD-02-014月度工做行事曆.xlsx perl5 sed

[root@axinlinux-01 ~]# cat aming.txt

dfsdfsgfsgfsdfsd

sdgfsdfsdfsd

sdfsdfsdfsdfsfsfsd

 

 

 

xshell怎麼實現跟ftp相似的功能:

兩種方法~1.與~2.

~1.

新建一個會話

進去之後能夠ls看一下。咱們get下來的文件的路徑能夠自定義(好比到桌面上)

 

~2.

使用xftp。在xshell界面按Ctrl+Alt+F,會提示安裝xftp

具體操做在下一任務。(56)

相關文章
相關標籤/搜索