vsftp服务
上传、下载、创建、删除、重命名

大纲:
一、匿名用户
二、系统用户
三、虚拟用户


------------------------
ftp>??
Commands?may?be?abbreviated.??Commands?are:

!		???????debug		???mdir		??sendport	site
$		???????dir		?????mget		??put		????size
account		?disconnect	?mkdir		pwd		????status
append		?exit		?????mls		??quit		??struct
ascii		???form		?????mode		??quote		??system
bell		???get	?????	?modtime	recv		??sunique
binary	???glob		?????mput		??reget		??tenex
bye		?????hash		?????newer		rstatus		tick
case		???help		?????nmap		??rhelp		??trace
cd		?????idle		?????nlist		rename		type
cdup		???p_w_picpath		???ntrans		reset		??user
chmod		???lcd		?????open		??restart		umask
close		???ls		???????prompt		rmdir		??verbose
cr		?????macdef		???passive	runique		?
delete		?mdelete		?proxy		send

常用的命令
!:????退出
quit:??退出
exit:??退出

cd:????在登陆vsftpd后,切换目录
lcd:???切换系统上目录

delete:删除文件,文件
rmdir:?删除目录,目录

put:???上传;一次上传一个文件
mput:??上传;一次上传多个文件


get:???下载;一次下载一个←文件
mget:??下载:一次下载多个⌒ 文件

rename:重命名
mkdir:?创建目录?

dir:???查看目录列表
ls:?????查看目录列表


#参数禁用匿名用户和系统用∑户访问
anonymous_enable=NO
local_enable=NO
#访★问结果如下
[root@localhost?vsftpd]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
500?OOPS:?vsftpd:?both?local?and?anonymous?access?disabled!
ftp>?

======================================================================================================================
===========================匿===============名====================用======================户==========================
======================================================================================================================



================================================创建№目录权限==========================================================
首先来看匿名用户
1、在匿名用户的根目录下创建一个子目录
[root@vsftpd?~]#?mkdir?/var/ftp/upload
[root@vsftpd?~]#?ll?-d?/var/ftp/upload/
drwxr-xr-x?2?root?root?4096?7月??19?19:11?/var/ftp/upload/


2、匿名用户在upload目录中第一次创建test目录
[root@vsftpd?~]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?ftp
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,134,99).
150?Here?comes?the?directory?listing.
drwxr-xr-x????2?0????????0????????????4096?Mar?01??2013?pub
drwxr-xr-x????2?0????????0????????????4096?Jul?19?11:11?upload
226?Directory?send?OK.
ftp>?cd?upload
250?Directory?successfully?changed.
ftp>?mkdir?test???#权限被拒绝,错误代码550
550?Permission?denied.

3、修改vsftpd的配置文件,增加创建目录♂的权限
[root@vsftpd?vsftpd]#?vim?vsftpd.conf?
anon_mkdir_write_enable=YES


4、修改配置文●件后,每次都要重新载入配置文件
[root@vsftpd?vsftpd]#?service?vsftpd?restart
关闭?vsftpd:??????????????????????????????????????????????[确定]
为?vsftpd?启动?vsftpd:????????????????????????????????????[确定]

5、匿名用户第二次登╱录并在upload目录中▽创建test目录
[root@vsftpd?~]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?ftp
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?cd?upload
250?Directory?successfully?changed.
ftp>?mkdir?test???#提示创建目录操作失败,错误代码依旧是550
550?Create?directory?operation?failed.
注释:同样是错误代码550,但是〖代表的意义是不一样的。
第一个500:提示权限被拒绝,应该属于配置文件层的
第二个500:提示创建目录操作失败,应该属于文件层的
结论:应该属于upload目录的●权限问题,查看upload目录的权限,宿主宿组都是root并且◢其它用户没有写入的权限
[root@vsftpd?~]#?ll?-d?/var/ftp/upload/
drwxr-xr-x?2?root?root?4096?7月??19?19:11?/var/ftp/upload/
赋予其它用户对upload目录有写入的权限
[root@vsftpd?~]#?chmod?o+w?/var/ftp/upload/
[root@vsftpd?~]#?ll?-d?/var/ftp/upload/
drwxr-xrwx?2?root?root?4096?7月??19?19:11?/var/ftp/upload/


6、匿名用户第三次登ζ 陆并在upload目录中创建test目录
ftp>?mkdir?test
257?"/upload/test"?created
ftp>?pwd
257?"/upload"
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,171,81).
150?Here?comes?the?directory?listing.
drwx------????2?14???????50???????????4096?Jul?19?11:23?test
226?Directory?send?OK.

总结:针对vsftpd服务来说;权限=vsftpd配置文件的权限+根目录的是否有写入权限


-------------小小的发现----------------
在登陆状态下,级☆联创建目录后,虽然目录也能创建成功,但是打开却失败╳,如下
[root@vsftpd?~]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?ftp
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?cd?upload
250?Directory?successfully?changed.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,178,230).
150?Here?comes?the?directory?listing.
-rw-------????1?14???????50??????????16558?Jul?19?16:49?Ins.log
226?Directory?send?OK.
ftp>?mkdir?ftproot
257?"/upload/ftproot"?created
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,191,8).
150?Here?comes?the?directory?listing.
-rw-------????1?14???????50??????????16558?Jul?19?16:49?Ins.log
drwx------????2?14???????50???????????4096?Jul?19?17:00?ftproot
226?Directory?send?OK.
ftp>?cd?ftproot
250?Directory?successfully?changed.
ftp>?pwd
257?"/upload/ftproot"
ftp>?mkdir?test
257?"/upload/ftproot/test"?created
ftp>?dir????????
227?Entering?Passive?Mode?(127,0,0,1,233,207).
150?Here?comes?the?directory?listing.
226?Transfer?done?(but?failed?to?open?directory).??#传输成功,但是打开目录■失败

解决办法:
首先修☉改配置文件←,然后重启vsftpd服务,最』后再次查看
修改配置文件,如下
[root@vsftpd?~#?vim?/etc/vsftpd/vsftpd.conf?
anon_world_readable_only=NO

#?service?vsftpd?restart

#ftp>?dir?ftproot??#查看成功
227?Entering?Passive?Mode?(127,0,0,1,102,170).
150?Here?comes?the?directory?listing.
drwx------????2?14???????50???????????4096?Jul?19?17:00?test
226?Directory?send?OK.
================================================上传权限==========================================================
1、上传本地文件;测试
[root@vsftpd?~]#?ll
总用量?36
-rw-------.?1?root?root???981?6月??30?21:13?anaconda-ks.cfg
-rw-r--r--.?1?root?root?16558?6月??30?21:13?install.log
-rw-r--r--.?1?root?root??3482?6月??30?21:10?install.log.syslog
drwxr-xr-x??2?root?root??4096?7月??19?18:53?vsftpd
[root@vsftpd?~]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?ftp
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?cd?upload
250?Directory?successfully?changed.
ftp>?put?install.log???????#上传本地install.log文件,权限被拒绝
local:?install.log?remote:?install.log
227?Entering?Passive?Mode?(127,0,0,1,95,49).
550?Permission?denied.
权限被拒绝,很多都是因为配置文○件的问题

2、修改配置文件并重启vsftpd服务
[root@vsftpd?~]#?vi?/etc/vsftpd/vsftpd.conf?
anon_upload_enable=YES
[root@vsftpd?~]#?service?vsftpd?restart
关闭?vsftpd:??????????????????????????????????????????????[确定]
为?vsftpd?启动?vsftpd:????????????????????????????????????[确定]

3、再次登录,上传测试文件
[root@vsftpd?~]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?ftp
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?cd?upload
250?Directory?successfully?changed.
ftp>?put?install.log
local:?install.log?remote:?install.log
227?Entering?Passive?Mode?(127,0,0,1,26,235).
150?Ok?to?send?data.
226?Transfer?complete.
16558?bytes?sent?in?0.0755?secs?(219.29?Kbytes/sec)
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,169,5).
150?Here?comes?the?directory?listing.
-rw-------????1?14???????50??????????16558?Jul?19?11:33?install.log
drwx------????2?14???????50???????????4096?Jul?19?11:23?test










================================================删除|重命名权限==========================================================
[root@vsftpd?vsftpd]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?ftp
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?cd?upload
250?Directory?successfully?changed.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,221,162).
150?Here?comes?the?directory?listing.
-rw-------????1?14???????50??????????16558?Jul?19?11:33?install.log
drwx------????2?14???????50???????????4096?Jul?19?11:23?test
226?Directory?send?OK.
ftp>?rename?install.log?Ins.log???#将文件install.log重命名为Ins.log??成功
350?Ready?for?RNTO.
250?Rename?successful.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,203,30).
150?Here?comes?the?directory?listing.
-rw-------????1?14???????50??????????16558?Jul?19?11:33?Ins.log
drwx------????2?14???????50???????????4096?Jul?19?11:23?test
226?Directory?send?OK.
ftp>?rename?test?FileTest?????????#将目录test重命名为FileTest??成功
350?Ready?for?RNTO.
250?Rename?successful.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,237,149).
150?Here?comes?the?directory?listing.
drwx------????2?14???????50???????????4096?Jul?19?11:23?FileTest
-rw-------????1?14???????50??????????16558?Jul?19?11:33?Ins.log
226?Directory?send?OK.
ftp>?delete?Ins.log??????????????#删除文件Ins.log?使用delete??成功
250?Delete?operation?successful.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,41,156).
150?Here?comes?the?directory?listing.
drwx------????2?14???????50???????????4096?Jul?19?11:23?FileTest
ftp>?delete?FileTest????????????#delete无法针对目录删除,只能针对文件
550?Delete?operation?failed.
ftp>?rmdir?FileTest?????????????#rmdir是针对目录删除的〓	
250?Remove?directory?operation?successful.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,197,212).
150?Here?comes?the?directory?listing.
-rw-------????1?14???????50??????????16558?Jul?19?16:49?Ins.log
226?Directory?send?OK.
ftp>?












================================================下载权限==========================================================
1、登※录并下载文件
[root@vsftpd?mnt]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?ftp
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?cd?upload
250?Directory?successfully?changed.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,103,89).
150?Here?comes?the?directory?listing.
drwx------????2?14???????50???????????4096?Jul?19?11:23?FileTest
-rw-------????1?14???????50????????????805?Jul?19?11:48?fstab
ftp>?get?FileTest????????#文件打开♂失败,还是权ㄨ限问题
local:?FileTest?remote:?FileTest
227?Entering?Passive?Mode?(127,0,0,1,61,141).
550?Failed?to?open?file.

2、修改配置文件,添加下载权限并重启服务
[root@vsftpd?mnt]#?vim?/etc/vsftpd/vsftpd.conf?
anon_world_readable_only=NO
[root@vsftpd?mnt]#?service?vsftpd?restart
关闭?vsftpd:??????????????????????????????????????????????[确定]
为?vsftpd?启动?vsftpd:????????????????????????????????????[确定]

3、再次登录,下载?成功
[root@vsftpd?mnt]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?ftp
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?cd?upload
250?Directory?successfully?changed.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,139,108).
150?Here?comes?the?directory?listing.
drwx------????2?14???????50???????????4096?Jul?19?11:23?FileTest
-rw-------????1?14???????50????????????805?Jul?19?11:48?fstab
226?Directory?send?OK.
ftp>?mget?FileTest?fstab
mget?fstab??yes
227?Entering?Passive?Mode?(127,0,0,1,157,240).
150?Opening?BINARY?mode?data?connection?for?fstab?(805?bytes).
226?Transfer?complete.
805?bytes?received?in?2.8e-05?secs?(28750.00?Kbytes/sec)
ftp>?!
[root@vsftpd?mnt]#?ll??#下载成功
总用量?4
-rw-r--r--?1?root?root?805?7月??19?19:56?fstab







==========================================vsftpd.conf配置文↓件概述=======================================================

anonymous_enable=YES????????#允许匿名用◥户访问(yes,为允许,no为不允许)
local_enable=NO?????????????#是否禁用本≡地用户(设置为no是表☉示禁用,yes表示不禁用)
write_enable=YES????????????#允许开放写↘的权限
anon_umask=022??????????????#设置匿名用户上传建立文件时的权限掩码
anon_upload_enable=YES??????#允许匿名上∏传文件
anon_mkdir_write_enable=YES?#允许匿名用户创建目录
dirmessage_enable=YES???????#用户切换进入目↑录时显示.message(如果存在)文件的内∏容
xferlog_enable=YES??????????#开启xferlog日志,默认记录到⊙/var/log/xferlog)
connect_from_port_20=YES????#连接控制端Ψ口为卐20
xferlog_std_format=YES??????#启用标准xferlog的日〗志格式,若禁⊙用此项,将使用vsftpd自己的日『志格式
listen=YES??????????????????#是否以独立运行的方式监听服务
pam_service_name=vsftpd?????#设root置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件□名)
userlist_enable=NO??????????#未启用本地◥用户时,可以将用户列表↘功能禁用
tcp_wrappers=YES????????????#是否开启tcp_wrappers主机访问控¤制
chroot_local_user=YES???????#是否将FTP本地?用户禁锢@ 在宿主目录中
no_anon_password=YES????????#允许匿名↘访问不需要密码(加也可以,不加也可以←)


可新添加的你们用户▓的设置值
anon_world_readable_only=YES??#仅允许匿名用户具有下载可读文▆件的权限)
anon_other_write_enable=YES???#是否允许匿名用户有其它写入权ㄨ限,如对文件改名,覆盖以及删除(此选项慎用)



anon_world_readable_only=NO
anon_upload_enable=YES
download_enable=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
locel_root=/home/ftpsite/mike






======================================================================================================================
===========================本===============地====================用======================户==========================
======================================================================================================================
本地用户需要结合ftpusers和user_list这两●个文件
ftpusers:该文件中包含的用户帐户将被禁止登入vsftpd服务器,不管用户是不是在user_list文件出现
user_list:该文件中包含的用户帐户可能被禁止登入vsftpd服务器,也可能》被允许登入,具体要看userlist_enable
(是否启用user_list用户列表◇文件)的配置(配置成YES,则启用,NO则不启用),当userlist_enable=YES,之后看userlist_deny的配置
(为YES则仅禁止用户列表文】件的用户账号登入,为NO则仅用户列表╲文件的用户账号登入)

[root@vsftpd?vsftpd]#?ll
总用量?20
-rw-------?1?root?root??125?3月???1?2013?ftpusers?
-rw-------?1?root?root??361?3月???1?2013?user_list
-rw-------?1?root?root?4990?7月??20?01:06?vsftpd.conf
-rwxr--r--?1?root?root??338?3月???1?2013?vsftpd_conf_migrate.sh


[root@vsftpd?~]#?useradd?scott
[root@vsftpd?~]#?echo?"123"?|passwd?--stdin?"scott"
更改用户?scott?的密码?。
passwd:?所有的身份验证令牌已经成功更→新。

================================================创建目录权▓限==========================================================
1、创建系统①账户
[root@vsftpd?~]#?useradd?scott
[root@vsftpd?~]#?echo?"123"?|passwd?--stdin?"scott"
更改用户?scott?的密码?。
passwd:?所有的身份验证令牌已经成功更新。

2、系统账户登录测试
[root@vsftpd?~]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?scott
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?pwd
257?"/home/scott"
ftp>?cd?/mnt/
250?Directory?successfully?changed.
ftp>?pwd
257?"/mnt"
ftp>?cd?/usr/local/
250?Directory?successfully?changed.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,217,163).
150?Here?comes?the?directory?listing.
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?bin
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?etc
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?games
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?include
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?lib
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?lib64
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?libexec
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?sbin
drwxr-xr-x????5?0????????0????????????4096?Jun?30?13:06?share
drwxr-xr-x????2?0????????0????????????4096?Sep?23??2011?src
226?Directory?send?OK.
注释:想必大家也看到了,系统账户scott登录后,可以任意切换到系统的任意目录,显然这样是十分不安全的,应该做到
系统用户登录后锁定到自已的家〓目录中,禁止任意切换目录路径


3、修改配置文件
[root@vsftpd?~]#?vim?/etc/vsftpd/vsftpd.conf?
chroot_local_user=YES

4、系统账户再次登录,测试切★换目录路径
[root@vsftpd?~]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?scott
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?pwd
257?"/"
ftp>?cd?/mnt/
550?Failed?to?change?directory.??#失败的切ω 换目录
ftp>?pwd
257?"/"
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,152,129).
150?Here?comes?the?directory?listing.
226?Directory?send?OK.









==========================================vsftpd.conf配置文◥件概述=======================================================
anonymous_enable=NO?????????#允许匿名用户访问(yes,为允许,no为不允许)
local_enable=YES????????????#是否禁用本地用户?(设置为no是表示禁用,yes表示不禁用)
write_enable=YES????????????#允许开放写的权ξ 限
local_umask=022?????????????#设置用户上传建立文件时的权限掩码
dirmessage_enable=YES???????#用户切换进入目录◥时显示.message(如果存在)文件的内容︻
xferlog_enable=YES??????????#(开启xferlog日志,默认记录到/var/log/xferlog)
connect_from_port_20=YES????#连接控制♂端口为20
xferlog_std_format=YES??????#启用标准xferlog的日「志格式,若禁用△此项╲,将使用vsftpd自※己的日志格式
ascii_upload_enable=YES?????#允许用户使用Ascii码格式上传文件
ascii_download_enable=YES???#允许用户使用Ascii码格式下载文件
listen=YES??????????????????#是否以独立运行的方式监听服务
pam_service_name=vsftpd?????#设root置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文㊣ 件名)
userlist_enable=NO??????????#是否启用user_list用户列表文件
tcp_wrappers=YES????????????#是否开启tcp_wrappers主机访≡问控制
chroot_local_user=YES???????#是否将FTP本地?用户禁锢在宿主目录中
max_clients=20??????????????#限制并发客户连接数最多为20个
max_per_ip=2????????????????#限制来自同一个IP的客户连接数为最︾多2个
local_max_rate=102400???????#本地下载、上传限速为⌒ 100KB/s
pasv_enable=YES?????????????#允许被动模式连接
pasv_min_port=24500?????????#设置用于被动连接的服务器最小端口号
pasv_max_port=24600?????????#设置用于被动连接的服务器最大端口号
connect_from_port_20=YES????#允许服务器主动模式(从20端口建立▓数据连接)
download_enable=YES?????????#是否允许下载文件(建立仅☆限于浏览和上传的设置为NO)




======================================================================================================================
===========================虚===============拟====================用======================户==========================
======================================================================================================================

1、安装vsftpd和db4-utils
[root@vsftpd?~]#?yum?-y?install?vsftpd?db4-utils
注释:vsftpd是ftp服务的主程序包;db4-utils的客户端命□ 令db_load可以用来生成用户卐的数据库文件々

2、建立文本格式的用户名和密码■列表文件
注释:奇数行为用户,偶︾数行为密码
[root@vsftpd?~]#?cd?/etc/vsftpd/
[root@vsftpd?vsftpd]#?cat?>>?vusers.list?<<?EOF
>?tom
>?123
>?jerry
>?123
>?Allentuns
>?123
>?EOF

3、db_load工具将列表文件转化为DB数据库文件
[root@vsftpd?vsftpd]#?db_load?-T?-t?hash?-f?vusers.list?vusers.db
注释:命令的用法
db_load?-T(转换)?-t?hash(指定读取数据文件的基本方法)?-f?vusers.list(刚才的列表文件)vusers.db(转化为数据库文件)

注释:检查↙是否转换成功
[root@vsftpd?vsftpd]#?file?vusers.db?
vusers.db:?Berkeley?DB?(Hash,?version?9,?native?byte-order)
[root@vsftpd?vsftpd]#?file?vusers.list?
vusers.list:?ASCII?text


4、建立ftp访问的根Ψ 目录及虚拟用户对应的系统账号
[root@vsftpd?vsftpd]#?mkdir?/var/ftproot
[root@vsftpd?vsftpd]#?useradd?-d?/var/ftproot/?-s?/sbin/nologin?virtual
useradd:警告:此主目录ㄨ已经存在。
不从?skel?目录里向其中复制任何文件。

5、更改根目录的权限
[root@vsftpd?vsftpd]#?chown?virtual:virtual?/var/ftproot
[root@vsftpd?vsftpd]#?chmod?755?/var/ftproot

6、建立pam认证文件
[root@vsftpd?vsftpd]#?cat?>>?/etc/pam.d/vsftpd.vu?<<?EOF
>?#%PAM-1.0
>?auth??????required???pam_userdb.so????db=/etc/vsftpd/vusers
>?account???required???pam_userdb.so????db=/etc/vsftpd/vusers
>?EOF

7、修改配置文件
[root@vsftpd?vsftpd]#?cp?vsftpd.conf?vsftpd.conf.bak
[root@vsftpd?vsftpd]#?vim?vsftpd.conf
anonymous_enable=NO???????#允许匿名用户访问(yes,为允许,no为不允许)
local_enable=YES??????????#是否禁用本地用户(设置为no是表示禁用,yes表示不禁用)
write_enable=YES??????????#允许开放写的权限
anon_umask=022????????????#设置匿名用户上传建立文件时的权限掩码
dirmessage_enable=YES?????#用户切换进入目录时显示.message(如果存在)文件的内容
xferlog_enable=YES????????#开启xferlog日志,默认记录到/var/log/xferlog)
connect_from_port_20=YES??#连接◆控制端口为20
xferlog_std_format=YES????#启用标准xferlog的日志格式,若禁用此项,将使用vsftpd自己的日志格式
listen=YES????????????????#是否以独立运行的方式监听服务
userlist_enable=YES???????#未启用本地用户时,可以将用户列表功能禁用
tcp_wrappers=YES??????????#是否开启tcp_wrappers主机访问控制
guest_enable=YES????????????#启用用户映射功能
guest_username=virtual??????#将映射用户指定为virtual(我们之前创建的虚拟用户)
pam_service_name=vsftpd.vu??#设root置用于用户认证的PAM文件位置(/etc/pam.d/vsftpd.vu?目录中对应♂的文件名)
local_root=/var/ftproot?????#指定ftp的路径(可以自己写目录路径,要注→意权限和宿主)

8、重新启动vsftpd服务
[root@vsftpd?vsftpd]#?service?vsftpd?restart
关闭?vsftpd:??????????????????????????????????????????????[确定]
为?vsftpd?启动?vsftpd:????????????????????????????????????[确定]


9、为不同的虚拟用户建立独立的配置文件(分配不同⊙的权限)
[root@vsftpd?~]#?cd?/etc/vsftpd/
[root@vsftpd?vsftpd]#?mkdir?chroot_list
[root@vsftpd?vsftpd]#?vim?chroot_list/tom
#上传、创建文件
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES

10、然后◥再修改配置文件,在里←面添加一句
[root@vsftpd?vsftpd]#?vim?vsftpd.conf
#指定给用户配置权限目录的位置
user_config_dir=/etc/vsftpd/chroot_list



11、登录、用户权限|测试
创建目录,上传文件,删除、重命名,下载
[root@vsftpd?mnt]#?ftp?localhost
Trying?::1...
ftp:?connect?to?address?::1拒绝连接
Trying?127.0.0.1...
Connected?to?localhost?(127.0.0.1).
220?(vsFTPd?2.2.2)
Name?(localhost:root):?tom
331?Please?specify?the?password.
Password:
230?Login?successful.
Remote?system?type?is?UNIX.
Using?binary?mode?to?transfer?files.
ftp>?pwd
257?"/"
ftp>?mkdir?upload
257?"/upload"?created
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,139,65).
150?Here?comes?the?directory?listing.
drwx------????2?500??????500??????????4096?Jul?20?19:53?upload
226?Directory?send?OK.
ftp>?lcd?/etc
Local?directory?now?/etc
ftp>?put?fstab
local:?fstab?remote:?fstab
227?Entering?Passive?Mode?(127,0,0,1,249,106).
150?Ok?to?send?data.
226?Transfer?complete.
805?bytes?sent?in?3.8e-05?secs?(21184.21?Kbytes/sec)
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,206,240).
150?Here?comes?the?directory?listing.
-rw-------????1?500??????500???????????805?Jul?20?19:53?fstab
drwx------????2?500??????500??????????4096?Jul?20?19:53?upload
226?Directory?send?OK.
ftp>?mput?inittab?passwd
mput?inittab??yes
227?Entering?Passive?Mode?(127,0,0,1,223,114).
150?Ok?to?send?data.
226?Transfer?complete.
884?bytes?sent?in?4.1e-05?secs?(21560.98?Kbytes/sec)
mput?passwd??yes
227?Entering?Passive?Mode?(127,0,0,1,254,126).
150?Ok?to?send?data.
226?Transfer?complete.
951?bytes?sent?in?3e-05?secs?(31700.00?Kbytes/sec)
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,170,44).
150?Here?comes?the?directory?listing.
-rw-------????1?500??????500???????????805?Jul?20?19:53?fstab
-rw-------????1?500??????500???????????884?Jul?20?19:54?inittab
-rw-------????1?500??????500???????????951?Jul?20?19:54?passwd
drwx------????2?500??????500??????????4096?Jul?20?19:53?upload
226?Directory?send?OK.
ftp>?rename?passwd?password
350?Ready?for?RNTO.
250?Rename?successful.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,249,227).
150?Here?comes?the?directory?listing.
-rw-------????1?500??????500???????????805?Jul?20?19:53?fstab
-rw-------????1?500??????500???????????884?Jul?20?19:54?inittab
-rw-------????1?500??????500???????????951?Jul?20?19:54?password
drwx------????2?500??????500??????????4096?Jul?20?19:53?upload
226?Directory?send?OK.
ftp>?delete?inittab
250?Delete?operation?successful.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,142,175).
150?Here?comes?the?directory?listing.
-rw-------????1?500??????500???????????805?Jul?20?19:53?fstab
-rw-------????1?500??????500???????????951?Jul?20?19:54?password
drwx------????2?500??????500??????????4096?Jul?20?19:53?upload
226?Directory?send?OK.
ftp>?mkdir?test
257?"/test"?created
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,54,117).
150?Here?comes?the?directory?listing.
-rw-------????1?500??????500???????????805?Jul?20?19:53?fstab
-rw-------????1?500??????500???????????951?Jul?20?19:54?password
drwx------????2?500??????500??????????4096?Jul?20?19:55?test
drwx------????2?500??????500??????????4096?Jul?20?19:53?upload
226?Directory?send?OK.
ftp>?rmdir?test
250?Remove?directory?operation?successful.
ftp>?dir
227?Entering?Passive?Mode?(127,0,0,1,99,71).
150?Here?comes?the?directory?listing.
-rw-------????1?500??????500???????????805?Jul?20?19:53?fstab
-rw-------????1?500??????500???????????951?Jul?20?19:54?password
drwx------????2?500??????500??????????4096?Jul?20?19:53?upload
226?Directory?send?OK.
ftp>?lcd?/mnt/
Local?directory?now?/mnt
ftp>?mget?fstab?password?upload
mget?fstab??yes
227?Entering?Passive?Mode?(127,0,0,1,230,153).
150?Opening?BINARY?mode?data?connection?for?fstab?(805?bytes).
226?Transfer?complete.
805?bytes?received?in?9.8e-05?secs?(8214.29?Kbytes/sec)
mget?password??yes
227?Entering?Passive?Mode?(127,0,0,1,141,146).
150?Opening?BINARY?mode?data?connection?for?password?(951?bytes).
226?Transfer?complete.
951?bytes?received?in?5.1e-05?secs?(18647.06?Kbytes/sec)
ftp>?!
[root@vsftpd?mnt]#?ll
总用量?8
-rw-r--r--?1?root?root?805?7月??21?03:55?fstab
-rw-r--r--?1?root?root?951?7月??21?03:55?password





建议公司用虚拟用户做vsftpd,因为虚拟用户是在Linux系统中不存在的,这样增强系统的安全性vsftpd配置文件的ζ 更多参数,
大家感兴趣可以自己去配置,我写的都是一★些基本的配置参数

==========================================vsftpd.conf配↑置文件概述=======================================================

主配置文╲件:/etc/vsftpd/vsftpd.conf
匿名权限
anon_root?指定匿名用户访问目录
anonymous_enable?是否启用匿名访】问
anon_mkdir_write_enable???是否允许匿名用户创建目录的权限
anon_other_write_enalbe?是否允』许匿名用户其他的写入权限
anon_max_rate????允许匿名用户最大的传输速率
anon_upload_enable??是否№允许匿名用户上传
anon_umask=022??匿名用户上传文件的默认权限
?
本地用户权限
local_root?指定本地用户登陆后的宿主目录
chroot_local_user?是否将用户禁锢在宿主目录中
local_max_rate??允许本地用户的传输速率
local_mkdir_write_enable?是否允许本地用○户创建目录的权限
local_other_write_enable?是否允许本地用户其他的々写入权限
local_enable?是否启用本地用户访问
local_umask?本地〓用户上传文件的默认权限
?
全局配置
listen=yes?是否以独立的方式监听服务
listen_port=21?设置FTP的侦听端口
write_enable?是否允许写入
download_enable?是否允许下载
dirmessage_enable?用户切换目录时显示.message文件
xferlog_enable??启用xferlog日志
xferlog_std_format?启用标准的xferlog日志
connect_from_port_20?允许服务器从20号︽端口建立主动连接
pasv_enable?允许服务器被动连接
pasv_max_port???设置用于被动连接的最大端口号
pasv_min_port???设置用于被动连接的最小端口号
pam_service_name?设置用于用户认∮证的pam文件的√位置
userlist_enable??是否启用user_list列表文件
userlist_deny???是否禁user_list列表中♀用户帐号
max_clients??最多允许多少个客户端同时连接
max_per_ip???对【来自同一IP的客户端,最多允许多少个并发连接
tcp_wrappers?是否启用TCP_wrappers主机访问控制
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd/chroot_list
?
虚拟用户配置
guest_enable?是否启用用户映射功能
guest_username?将映射用户指定为某个系统用户
user_config_dir?指定虚拟用户配置目录位置



=======================================================================================================================================
=======================================================================================================================================
=======================================================================================================================================
#!/bin/bash
#?Allentuns-郑彦生
#?time?2014-07-20

#反复◥安装后,再¤次安装删除路径文件
yum?-y?remove?vsftpd
rm?-rf?/etc/init.d/vsftpd
rm?-rf?/etc/vsftpd
rm?-rf?/etc/pam.d/vsftpd.vu
rm?-rf?/var/ftproot
userdel?-r?virtual

#关□闭防火墙和selinux
service?iptables?stop
chkconfig?iptables?off
setenforce?0


#安装vsftpd和db4包
yum?-y?install?vsftpd?db4-utils
yum?-y?install?ftp

#每次安装前对原文件进行∞一个打包
#tar?-cPf?/root/vsftpd_bak.tar.gz?/etc/vsftpd

#创建用户列表文件
#奇数行◢为账户,偶数行★为密码
cd?/etc/vsftpd
cat?>?vusers.list?<<?EOF
tom
123456
jerry
123456
Allentuns
123456
EOF

#生成db数据库文件
db_load?-T?-t?hash?-f?vusers.list?vusers.db

#创建虚拟用户根目录
mkdir?/var/ftproot
#创建虚拟用户?不允许登录系统
useradd?-d?/var/ftproot/?-s?/sbin/nologin?virtual?&>?/dev/null
#更改文件属性、权限
chown?virtual:virtual?/var/ftproot
chmod?755?/var/ftproot

#创建pam文件
cat?>?/etc/pam.d/vsftpd.vu?<<?EOF
#%PAM-1.0
auth??????required???pam_userdb.so????db=/etc/vsftpd/vusers
account???required???pam_userdb.so????db=/etc/vsftpd/vusers
EOF

#创建虚拟用户权◣限文件
cp?vsftpd.conf?vsftpd.conf.bak
mkdir?chroot_list
cat?>?chroot_list/tom?<<?EOF
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
EOF

#指明用户列表文件
sed?-i?'s/pam_service_name=vsftpd/pam_service_name=vsftpd.vu/'?vsftpd.conf


cat?>>?vsftpd.conf?<<?EOF
guest_enable=YES
guest_username=virtual
local_root=/var/ftproot
user_config_dir=/etc/vsftpd/chroot_list
EOF
sed?-i?'s/anonymous_enable=YES/anonymous_enable=NO/'?/etc/vsftpd/vsftpd.conf

#启动服务
/etc/init.d/vsftpd?restart
echo?"iptables?is?stop?and?selinux?is?disabled"
echo?"vsftpd?Successfully?installed?and?service?startup"

工作中遇到的一些问题,尤其是〇被动模式,在调╳试防火墙的时候格外的麻烦,借此借用朋友博客的截图■用以分析主∮动模式和被动模式的区别

深入挖掘vsftpd服务 文件 目录 匿名 删除 cc vir spec BBR one change 服务器教』程  第1张

深入挖掘vsftpd服务 文件 目录 匿名 删除 cc vir spec BBR one change 服务器教程  第2张

ftp同步脚本

#!/bin/bash
src=/www/newtmp

FTP_SERVER="192.168.1.107"
FTP_USER="jerry"
FTP_PASS="12345"

while?true
do
cd?$src
find?$src?-mmin?+1?-type?f?-exec?mv?'{}'?/www/mnttmp?';'
cd?/www/mnttmp
wccc=`ls?-l|wc?-l`
if?[?$wccc?!=?"1"?];then
ftp?-v?-n?$FTP_SERVER?<<?EOF
user?$FTP_USER?$FTP_PASS
prompt?off
mput?*.*
bye
EOF
rm?-rf??/www/mnttmp/*
fi

echo?`date`?请等待文件传输过程中。。。
sleep?1
done


热搜词

域名服务器名字轻云服务器 云虚拟主机服务器 租稳定网通服务器dcs 服务器国外免费云服务北京高∩防服务器怎么更换dns服务器修改服务器远程端口棋牌网站服务器服务器注意事项服务器带⊙宽多少合适盾机服务器 租用云服务报价单服务器整机购买多域名解析到同一台邮箱服务器申请注册 互联网信息服务 公司1u服务器和2u服务器dcs服务器阿里云服务器是什么东西云平台服务688爆服务器多ip服务器租用java web 部▆署到服务器 域名配置虚拟主机 windows服务接入网络服务商编码查询网络机柜能放进去1u服务器搭建视频服务器备案荷兰 服务器云世界服务器→激活码虚拟拔号服务器宁波服务器系统安装深圳访问香港︼服务器centos企业服务器免费个人服务器全球云服务器排名服务器cpu正常占多少cn域名 香港服务器大数据 阿里云服务器云服务用途快播服务器停用后动态域名解析服务器企业服务器价格bt服务端悉尼是什么服〖务器代理服务器内♀部enzu站群服务器大型游戏服务器购◆买山东云服务器服务器代维服务方案美国服务器时差如何解决 asp.net买国外¤域名和服务器空间和租用服务器ftp 服务器 租山西服务器租用云服务器ecs有什么用公司文件服务器托管互联网技术服务公司vps好还是云服务器好免费服务器托管贵州云服务器如何知道自己网站租用的服务卐器去网站基础服务服务器怎么重启虚拟主机 vps 云服务器服务器机房一般多长时间做一次检查如何入侵网站服务器服务器端口查询租赁服务器合同服务器机房环境标准备案域名服务服务器购买申请报告政府部门 服务器托管西安电信服№务器租用商城服务器带宽服务器物理⊙内存占完中国万网轻云服务器 如何发布网站服务器休眠后能远程访问吗全网平台注册服务机构游戏服务器 数据丢失服务→器需要多大带宽怎么用服务器建站服务器 改ip云服务设置为默认短信动态服务器和独立服务器使用游戏服务器违法吗云服务器 硬盘大小国外服务器设境内服务器使用∑申请服务器iis在哪里服务器托管一年多少钱10g带宽服务器香港vps服务器xgvpscdn加速服务怎么用云服务器架构香港服务器在国内犯法服々务器如何维护成都dns服务器香港服务器租○用 价格百度云加速服←务器绑定域名