日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

在CentOS 6.3 64bit上安装FTP服务器vsftpd 2.2.2

發布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在CentOS 6.3 64bit上安装FTP服务器vsftpd 2.2.2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序。特點是小巧輕快,安全易用。并且是一個完全免費開放源碼的ftp軟件

根據業務需要,要求支持ftp和sftp,我需要在Linux上架設一個ftp服務器,來存放CDN線上節點的用戶訪問日志。我選擇在CentOS?6.3?64bit上使用vsftpd來完成這個任務,服務器ip是10.10.110.158。
sftp是與SSH相關的,與ftp沒有任何關系,我采用python中的paramiko模塊實現了一個包裝類,這里只談ftp。
下面是安裝詳細過程實錄,僅作參考。
1.檢查server上是否已經安裝了vsftpd
rpm?-qa?|?grep?vsftpd

2.假如沒有相應的vsftpd?rpm包,我們需要下載安裝
yum?install?vsftpd

3.添加虛擬主機用戶
業務要求:被限制用戶名為test,被限制路徑為/home/test
添加用戶test,用戶目錄指定為/home/test,且此用戶不能登陸系統.
#useradd?–s?/sbin/nologin?–d?/home/test?test
注意-s?/sbin/nologin是讓其不能登陸系統,-d是指定用戶主目錄為/home/test,如果不存在會自動創建
#passwd?test

輸入密碼tao_627,并確認


4.配置vsftpd配置文件,這里是關鍵點
# ls /etc/vsftpd/
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh

首先了解vsftpd主配置文件vsftpd.conf,更全面的功能和選項介紹參見vsftpd.conf.5的man page頁面,使用命令行
man vsftpd.conf

vim /etc/vsftpd/vsftpd.conf
修改對應的值如下:
anonymous_enable=NO #禁止匿名用戶登錄,默認允許?
local_enable=YES #允許本地實體用戶登錄?
write_enable=YES #允許用戶上傳數據,開啟寫權限?
local_umask=022 #對本地用戶建立新目錄(755)與文件(644)的權限,上傳文件的權限掩碼 ?
dirmessage_enable=YES #若登錄目錄下有.message則會顯示該文件內容 可以自己在登錄目錄下創建.message文件并寫入信息?
xferlog_enable=YES #啟動日志文件記錄,默認記錄于/var/log/vsftpd.log,可用使用vsftpd_log_file改寫?
xferlog_file=/var/log/xferlog
connect_from_port_20=YES #支持主動式連接功能,默認20,可用使用ftp_data_port指定為其他端口號?
xferlog_std_format=YES #支持WuFTP的日志文件格式?
local_root=/home/test #限制登錄用戶只能在/home/test目錄下操作,該用戶一登錄就切換到該目錄下面?
chroot_local_user=YES #禁用戶離開主目錄
chroot_list_enable=YES #不允許FTP用戶離開自己的主目錄
listen=YES #使用stand alone方式啟動vsftpd?
pam_service_name=vsftpd #支持PAM模塊的管理
userlist_enable=YES #支持/etc/vsftpd/user_list文件內的賬號登錄控制,禁止其登陸
tcp_wrappers=YES #支持TCP Wrappers的防火墻機制
這里為了安全,我們可以編輯 user_list這個文件,把禁止通過FTP登錄系統的賬號添加進去。這樣的話,這些賬戶嘗試遠程登錄的時候。會被拒絕登錄。

實際修改配置項如下
anonymous_enable=NO
xferlog_file=/var/log/xferlog
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

新建一個文件/etc/vsftpd/chroot_list,因為上面的配置文件,在其中增加test

開放21和20端口
修改iptables文件,然后保存重啟
vim /etc/sysconfig/iptables

5.添加系統服務vsftpd,讓系統服務隨著系統啟動而啟動
chkconfig?vsftpd?on
使用下面的命令查看修改是否成功
chkconfig?vsftpd?--list
啟動vsftpd服務,嘗試使用ftp傳輸文件。
service?vsftpd?start
查看系統端口狀態:
netstat?-tulnp
如果能看到21端口正在被vsftpd調用說明啟動成功。

6.安裝ftp客戶端組件(用來驗證是否vsftpd)
yum?-y?install?ftp
執行命令嘗試登陸
ftp?localhost
輸入用戶和密碼,如果登陸成功,說明ftp服務可用了。下面是最簡單的在線ftp功能測試


7.命令行操作示例
假設vsftpd所在的服務器的地址是10.10.110.158,在另外的機器上打開命令行(需要事先安裝ftp客戶端):
ftp?10.10.110.158
輸入用戶名test,密碼為tao_627
ftp>ls
ftp>put?/usr/local/src/Python-2.7.10.tgz?/home/test/Python-2.7.10.tgz

ftp>quit

配置順利的話,現在就可以用ftp傳輸文件了。
8.ftp常用命令介紹
如果沒有遠程機的專用登錄帳號,許多ftp站點設有可以使用的特殊帳號。這個帳號的登錄名為anonymous(也稱為匿名ftp),當使用這一帳號時,要求輸入email地址作為口令。
如果遠程系統提供匿名ftp服務,用戶使用這項服務可以登錄到特殊的,供公開使用的目錄。一般專門提供兩個目錄:pub目錄和incoming目錄。pub目錄包含該站點供公眾使用的所有文件,incoming目錄存放上載到該站點的文件。
一旦用戶使用ftp在遠程站點上登錄成功,將得到“ftp>”提示符。現在可以自由使用ftp提供的命令,可以用?help命令取得可供使用的命令清單,也可以在?help命令后面指定具體的命令名稱,獲得這條命令的說明。

最常用的命令有:
ls?列出遠程機的當前目錄
cd?在遠程機上改變工作目錄
lcd?在本地機上改變工作目錄
ascii?設置文件傳輸方式為ASCII模式
binary?設置文件傳輸方式為二進制模式
close?終止當前的ftp會話
hash?每次傳輸完數據緩沖區中的數據后就顯示一個#號
get(mget)?從遠程機傳送指定文件到本地機
put(mput)?從本地機傳送指定文件到遠程機
open?連接遠程ftp站點
exit?斷開與遠程機的連接并退出ftp
??顯示本地幫助信息
!?轉到Shell中

常用命令說明
◆啟動ftp會話
open命令用于打開一個與遠程主機的會話。該命令的一般格式是:
open?主機名/IP
如果在ftp?會話期間要與一個以上的站點連接,通常只用不帶參數的ftp命令。如果在會話期間只想與一臺計算機連接,那么在命令行上指定遠程主機名或IP地址作為ftp命令的參數。
◆終止ftp會話
close、disconnect、和bye命令用于終止與遠程機的會話。close和disronnect命令關閉與遠程機的連接,但是使用戶留在本地計算機的ftp程序中。和bye命令都關閉用戶與遠程機的連接,然后退出用戶機上的ftp?程序。
◆改變目錄
“cd?[目錄]”命令用于在ftp會話期間改變遠程機上的目錄,lcd命令改變本地目錄,使用戶能指定查找或放置本地文件的位置。
◆遠程目錄列表
ls命令列出遠程目錄的內容,就像使用一個交互shell中的ls命令一樣。ls命令的一般格式是:
ls?[目錄]?[本地文件]
如果指定了目錄作為參數,那么ls就列出該目錄的內容。如果給出一個本地文件的名字,那么這個目錄列表被放入本地機上您指定的這個文件中。
◆從遠程系統獲取文件
get和mget命令用于從遠程機上獲取文件。get命令的一般格式為:
get?文件名
您還可以給出本地文件名,這個文件名是這個要獲取的文件在您的本地機上創建時的文件名。如果您不給出一個本地文件名,那么就使用遠程文件原來的名字。
mget命令一次獲取多個遠程文件。mget命令的一般格式為:
mget?文件名列表
使用用空格分隔的或帶通配符的文件名列表來指定要獲取的文件,對其中的每個文件都要求用戶確認是否傳送。
◆向遠程系統發送文件
put和mput命令用于向遠程機發送文件。Put命令的一般格式為:
put?文件名
mput命令一次發送多個本地文件,mput命令的一般格式為:
mput?文件名列表
使用用空格分隔的或帶通配符的文件名列表來指定要發送的文件。對其中的每個文件都要求用戶確認是否發送。
◆改變文件傳輸模式
默認情況下,ftp按ASCII模式傳輸文件,用戶也可以指定其他模式。ascii和brinary命令的功能是設置傳輸的模式。用ASCII模式傳輸文件對純文本是非常好的,但為避免對二進制文件的破壞,用戶可以以二進制模式傳輸文件。
◆檢查傳輸狀態
傳輸大型文件時,可能會發現讓ftp提供關于傳輸情況的反饋信息是非常有用的。hash命令使ftp在每次傳輸完數據緩沖區中的數據后,就在屏幕上打印一個#字符。本命令在發送和接收文件時都可以使用。
◆ftp中的本地命令
當您使用ftp時,字符“!”用于向本地機上的命令shell傳送一個命令。如果用戶處在ftp會話中,需要shell做某些事,就很有用。例如用戶要建立一個目錄來保存接收到的文件。如果輸入!mkdir?new_dir,那么Linux就在用戶當前的本地目錄中創建一個名為new_dir?的目錄。

9.安裝中出現的問題
1.客戶端報
500?OOPS:?could?not?read?chroot()?list?file:/etc/vsftpd/vsftpd.chroot_list
解決方法:
查看vsftpd的配置,果然缺少這個文件,加上了啟動成功。
2.ftplib.error_perm: 553 Could not create file.

發現問題是沒有權限創建文件或是目錄,查找原因 因為我將selinux關閉了。發現上傳的文件夾的權限不對,在指定用戶test主目錄下,我自己創建了一個root組和用戶名的文件夾。將它們改為test后就可以了。 此時,上傳文件的組和用戶不限制,可以是root超級用戶,也可以是其它普通用戶,比如taoyx,不一定是test,都可以的。
10.參考文獻
[1]. http://www.2cto.com/os/201412/359964.html
[2]. http://www.php100.com/html/webkaifa/Linux/2009/0811/3169.html


總結

以上是生活随笔為你收集整理的在CentOS 6.3 64bit上安装FTP服务器vsftpd 2.2.2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。