您好,登錄后才能下訂單哦!
什么是ftp
FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為 “文傳協議” 用于Internet上的控制文件的雙向傳輸。
FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算機上運行著FTP服務器程序)查看遠程計算機有哪些文件,然后把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。
在CentOS或者RedHat Linux上有自帶的ftp軟件叫做vsftpd
1. 下載軟件
pure-ftpd 官網是 http://www.pureftpd.org/project/pure-ftpd 當前最新版本為1.0.36, 但阿銘不建議使用最新版本,最新版有可能有一些小bug.
cd /usr/local/src/
wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.37.tar.bz2
2. 安裝pure-ftpd
tar jxf pure-ftpd-1.0.37.tar.bz2
cd pure-ftpd-1.0.37
./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits \
--with-tls
make && make install
配置pure-ftpd
1. 修改配置文件
pure-ftpd 編譯安裝很快就完成了,而且極少有出現錯誤的時候,下面就該配置它了:
cd configuration-file
mkdir -p /usr/local/pureftpd/etc/
cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl
chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
在啟動pure-ftpd之前需要先修改配置文件,配置文件為vim /usr/local/pureftpd/etc/pure-ftpd.conf, 你可以打開看一下,里面內容很多,如果英文好,可以好好研究一番,下面是阿銘的配置文件,如果你嫌麻煩,直接拷貝過去即可:
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
Daemonize yes
MaxClientsPerIP 8
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion 3136 8
AnonymousCanCreateDirs no
MaxLoad 4
AntiWarez yes
Umask 133:022
MinUID 100
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload no
PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage 99
CustomerProof yes
2. 啟動pure-ftpd
/usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
如果是啟動成功,會顯示一行長長的以Running開頭的信息,否則那就是錯誤信息,如果你解決不了,請到阿銘論壇(http://www.aminglinux.com/bbs/forum-40-1.html)獲取幫助吧。
3. 建立賬號
[root@localhost ~]# mkdir -p /data/www/
[root@localhost ~]# useradd www
[root@localhost ~]# chown -R www:www /data/www/
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uwww -d /data/www/
Password:
Enter it again:
其中,-u將虛擬用戶ftp_user1與系統用戶www關聯在一起,也就是說使用ftp_user1賬號登陸ftp后,會以www的身份來讀取文件或下載文件。-d 后邊的目錄為ftp_user1賬戶的家目錄,這樣可以使ftp_user1只能訪問其家目錄/data/www/. 到這里還未完成,還有最關鍵的一步,就是創建用戶信息數據庫文件:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw mkdb
pure-pw還可以列出當前的ftp賬號,當然也可以刪除某個賬號, 我們再創建一個賬號:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw mkdb
列出當前賬號:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw list
刪除賬號的命令為:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw userdel ftp_user2
測試pure-ftpd
測試需要使用的工具叫做lftp, 先安裝一下它:
[root@localhost ~]# yum install -y lftp
測試:
[root@localhost ~]# touch /data/www/123.txt
[root@localhost ~]# lftp ftp_user1@127.0.0.1
口令:
lftp ftp_user1@127.0.0.1:~> ls
drwxr-xr-x 2 514 www 4096 Jun 12 11:14 .
drwxr-xr-x 2 514 www 4096 Jun 12 11:14 ..
-rw-r--r-- 1 514 www 0 Jun 12 11:14 123.txt
登陸后,使用 ls 命令可以列出當前目錄都有什么文件。
在測試時,成功登陸后,輸入命令后,提示登陸出錯。
解決辦法:
登陸密碼太簡單,重新修改。
vsftp配置ftp服務
1). yum -y install vsftpd db4-utils
2). 建立系統賬號
useradd virftp -s /sbin/nologin
3). 建立虛擬賬戶
vim /etc/vsftpd/vsftpd_login
test
anxxf0814
4). 更改權限
chmod 600 /etc/vsftpd/vsftpd_login
5). 生成庫文件密碼
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
6). mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
7). 創建和用戶對應 的配置文件
vim test
local_root=/home/virftp/test
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
max_per_ip=5
local_max_rate=50000
8). mkdir /home/virftp/test
chown -R virftp:virftp /home/virftp
9). vim /etc/pam.d/vsftpd (添加一下兩行)
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注:64位的系統需要寫成/lib64/
10). 修改全局配置文件vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
anon_upload_enable=NO
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
11). 啟動vsftpd 服務
/etc/init.d/vsftpd start
若沒有啟動成功, killall -9 pure-ftpd
測試:
客戶端 yum install -y lftp
lftp test@服務端ip
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。