13 12
发新话题
打印

转贴:vsftp资料汇总 最近学习vsftp收集的

转贴:vsftp资料汇总 最近学习vsftp收集的

用vsftp建立个人ftp站点

首先是最基本的配置,请看我的/etc/vsftpd/vsftpd.conf

###############################################################################
#接受匿名用户
anonymous_enable=YES
#匿名用户login时不询问口令
no_anon_password=YES
#接受本地用户
local_enable=YES

#可以上传(全局控制).若想要匿名用户也可上传则需要设置anon_upload_enable=YES,若想要匿名用户可以建立目录则需要设置anon_mkdir_write_enable=YES.这里禁止匿名用户上传,所以不设置这两项.
write_enable=YES
#本地用户上传文件的umask
local_umask=022

#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file选项修改
xferlog_enable=YES
#日志使用标准xferlog格式
xferlog_std_format=YES

#login时的欢迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#设置的话将覆盖上面的ftpd_banner设置,用户login时将显示/etc/vsftpd/banner中的内容
banner_file=/etc/vsftpd/banner
#为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
dirmessage_enable=YES
#本地用户login后所在目录,若没有设置此项,则本地用户login后将在他的home目录(/etc/passwd的第六个字段)中.匿名用户的对应选项是anon_root
local_root=/var/ftp

#设置为YES则下面的控制有效
chroot_list_enable=YES
#若为NO,则记录在chroot_list_file选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里选择YES.
chroot_local_user=YES

#若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
userlist_enable=YES
#若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_deny=NO
#注意!!!vsftpd还要检察/etc/vsftpd.ftpusers文件,记录在这个文件中的用户将无法login!!

#服务器以standalong模式运行,这样可以进行下面的控制
listen=YES
#匿名用户的传输比率(b/s)
anon_max_rate=51200
#本地用户的传输比率(b/s)
local_max_rate=512000
#可接受的最大client数目
max_clients=100
#每个ip的最大client数目
max_per_ip=5

connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=vsftpd

##############################################################################

下面是我的/etc/vsftpd.user_list
##############################################################################

ftpuser
anonymous

##############################################################################
/etc/vsftpd.ftpusers可以使用系统自带的文件
/etc/vsftpd.chroot_list内容为空
接着建立系统用户ftpuser,将他加入ftp组并将/etc/passwd中他的记录的最后一个字段改成/sbin/nologin(禁止本地登录).
设置/var/ftp的所有者和所有组为root,权限为755
设置/var/ftp/pub的所有者为root,所有组为ftp,权限为775

至此vsftpd的基本配置就完成了.这里我们接受匿名用户anonymous和本地用户ftpuser的请求.anonymous只能下载, ftpuser可以下载和上传.他们登录后均在/var/ftp目录下且无法离开这个目录(被chroot了).ftpuser可以在 /var/ftp/pub目录中建立目录和上传文件,上传文件的权限为755(设置了local_umask=022).匿名用户的传输比率为 50kb/s,ftpuser的传输比率为500kb/s.可联接的最多客户数为100,每ip可联接的最多客户数为5.
如果需要使本地用户ftpput可以login,只需要将他加入/etc/vsftpd.user_list,要使他可以上传,只需将他加入ftp组.
接着我们可以在/var/ftp下的各个目录(包括/var/ftp)下建立.message文件,这样用户进入这个目录时vsftpd将显示. message的内容,你可以在这里面写上欢迎信息或者注意事项等等.另外可以编辑/etc/vsftpd/banner,建立login时的欢迎信息, 让你的ftp更加个性化.

下面我们使用quota为ftpuser加入磁盘限额,避免恶意用户用垃圾数据塞满你的硬盘.
假设/var/ftp在根分区/(/dev/hda5)中,则将/etc/fstab中根分区的记录的第4个字段改成defaults,usrquota,这样这条记录看起来类似这样:
LABEL=/ / ext3 defaults,usrquota 1 1
接着重启系统后输入下列命令:
quotacheck -acu #检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表
quotacheck -avu #生成每个启用了配额的文件系统的当前磁盘用量表
edquota ftpuser #为用户ftpuser设置磁盘配额
这时系统会在默认文本编辑器(vi)中打开配额文件,显示类似这样:
Disk quotas for user ftpuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda5 0 0 0 0 0 0
第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period)。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置.按你的需要修改后存盘推出.
要校验用户的配额是否被设置,使用以下命令:
quota testuser
接着使用edquota -t来设置过渡期(grace period)
和另一个 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda5 7days 7days
按你的需要修改后存盘退出

这样我们就成功的为ftpuser增添了磁盘配额.而一个比较完整的FTP站点也配置完成了

TOP

—————————————————— 2
vsftp 从XINETD
中独立出来,并将设定档从/etc/vsftpd.conf 之中移到/etc/vsftpd/vsftpd.conf。 为什么做这样的改变?可以想见的是vsftp
已有独立运作的能力,不需要XINETD 来做更进一步的管控,并且类似sendmail、httpd、ssh、samba 等,将设定文件的放入/etc
下独立的目录。 FTP 分为两类,一种为PORT FTP,也就是一般的FTP 另一类是PASVFTP,分述如下: PORT FTP
这是一般形式的FTP,首先会建立控制频道,默认值是port 21,也就是跟port 21 建立联机,并透过此联机下达指令。第二,由FTP server
端会建立数据传输频道,默认值为20,也就是跟port 20 建立联机,并透过port 20 作数据的传输。 PASV FTP 跟PORT FTP
类似,首先会建立控制频道,默认值是port 21,也就是跟port 21 建立联机,并透过此联机下达指令。第二,会由client
端做出数据传输的请求,包括数据传输port 的数字。 这两者的差异为何?PORT FTP 当中的数据传输port 是由FTP server 指定,而PASV
FTP 的数据传输port 是由FTP client 决定。通常我们使用PASV FTP,是在有防火墙的环境之下,透过client 与server
的沟通,决定数据传输的port。 3.2.2 范例 3.2.1. 直接启动VSFTP 服务 这个范例是套用RedHat 的预设范例,直接启动vsftp。
[root@relay vsftpd]# /sbin/service vsftpd start Starting vsftpd for vsftpd: OK ]
3.2.2. 更换port 提供服务:将预设的port 21 更换为2121 为了安全,或是以port 来区隔不同的ftp 服务,我们可能会将ftp port
改为21 之外的port,那么,可参考以下步骤。 Step1. 修改/etc/vsftpd/vsftpd.conf 新增底下一行
listen_port=2121 Step2. 重新启动vsftpd [root@home vsftpd]# /sbin/service vsftpd
restart Shutting down vsftpd: OK ] Starting vsftpd for vsftpd: OK ] 3.2.3.
特定使用者peter、john 不得变更目录 使用者的预设目录为/home/username,若是我们不希望使用者在ftp 时能够
切换到上一层目录/home,则可参考以下步骤。 Step1. 修改/etc/vsftpd/vsftpd.conf 将底下三行
#chroot_list_enable=YES # (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list 改为 chroot_list_enable=YES # (default
follows) chroot_list_file=/etc/vsftpd/chroot_list Step2. 新增一个档案:
/etc/vsftpd/chroot_list 内容增加两行: peter john Step3. 重新启动vsftpd [root@home vsftpd]#
/sbin/service vsftpd restart Shutting down vsftpd: OK ] Starting vsftpd for
vsftpd: OK ] 若是peter 欲切换到根目录以外的目录,则会出现以下警告: ftp> cd /home 550 Failed to
change directory. 3.2.4. 取消anonymous 登入 若是读者的主机不希望使用者匿名登入,则可参考以下步骤。 Step1.
修改/etc/vsftpd/vsftpd.conf 将 anonymous_enable=YES 改为 anonymous_enable=NO Step2.
重新启动vsftpd [root@home vsftpd]# /sbin/service vsftpd restart Shutting down
vsftpd: OK ] Starting vsftpd for vsftpd: OK ] 3.2.5.
安排欢迎话语若是我们希望使用者在登入时,能够看到欢迎话语,可能包括对该主机的说明,或是目录的介绍,可参考以下步骤。首先确定在/etc/vsftpd/vsftpd.conf
当中是否有底下这一行 dirmessage_enable=YES RedHat9 的默认值是有上面这行的。 接着,在各目录之中,新增名为.message
的档案,再这边假设有一个使用者test1,且此使用者的根目录下有个目录名为abc,那首先我们在/home/test1 之下新增.message,内容如下:
Hello~ Welcome to the home directory This is for test only...
接着,在/home/test1/abc 的目录下新增.message,内容如下: Welcome to abc's directory This is
subdir... 那么,当使用者test1 登入时,会看到以下讯息: 230- Hello~ Welcome to the home directory
230- 230- This is for test only... 230- 若是切换到abc 的目录,则会出现以下讯息: 250- Welcome to
abc's directory 250- 250- This is subdir ... 3.2.6. 对于每一个联机,以独立的process
来运作一般启动vsftp 时,我们只会看到一个名为vsftpd 的process 在运作,但若是读者希望每一个联机,都能以独立的process
来呈现,则可执行以下步骤。 Step1. 修改/etc/vsftpd/vsftpd.conf 新增底下一行 setproctitle_enable=YES

TOP

Step2. 重新启动vsftpd [root@home vsftpd]# /sbin/service vsftpd restart Shutting down
vsftpd: OK ] Starting vsftpd for vsftpd: OK ] 使用ps -ef 的指令,可以看告不同使用者联机的情形,如下图所示:
[root@home vsftpd]# ps -ef|grep ftp root 2090 1 0 16:41 pts/0 00:00:00 vsftpd:
LISTENER nobody 2120 2090 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244: connected
test1 2122 2120 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244/test1: IDLE nobody
2124 2090 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244: connected test2 2126 2124 0
17:19 ? 00:00:00 vsftpd: 192.168.10.244/test2: IDLE root 2129 1343 0 17:20 pts/0
00:00:00 grep ftp [root@home vsftpd]# 3.2.7.
限制传输档案的速度:本机的使用者最高速度为200KBytes/s,匿名登入者所能使用的最高速度为50KBytes/s Step1.
修改/etc/vsftpd/vsftpd.conf 新增底下两行 anon_max_rate=50000 local_max_rate=200000
Step2. 重新启动vsftpd [root@home vsftpd]# /sbin/service vsftpd restart Shutting down
vsftpd: OK ] Starting vsftpd for vsftpd: OK ] 在这边速度的单位为Bytes/s,其中anon_max_rate
所限制的是匿名登入的 使用者,而local_max_rate 所限制的是本机的使用者。VSFTPD 对于速度的限
制,范围大概在80%到120%之间,也就是我们限制最高速度为100KBytes/s, 但实际的速度可能在80KBytes/s 到120KBytes/s
之间,当然,若是频宽不足 时,数值会低于此限制。 3.2.8. 针对不同的使用者限制不同的速度:假设test1
所能使用的最高速度为250KBytes/s,test2 所能使用的最高速度为500KBytes/s。 Step1.
修改/etc/vsftpd/vsftpd.conf 新增底下一行 user_config_dir=/etc/vsftpd/userconf Step2.
新增一个目录:/etc/vsftpd/userconf mkdir /etc/vsftpd/userconf Step3.
在/etc/vsftpd/userconf 之下新增一个名为test1 的档案 内容增加一行: local_max_rate=250000 Step4.
在/etc/vsftpd/userconf 之下新增一个名为test2 的档案 内容增加一行: local_max_rate=500000 Step5.
重新启动vsftpd [root@home vsftpd]# /sbin/service vsftpd restart Shutting down
vsftpd: OK ] Starting vsftpd for vsftpd: OK ] 3.2.9-1. 建置一个防火墙下的ftp
server,使用PORT FTP mode:预设的ftp port:21 以及ftp data port:20 启动VSFTPD
之后执行以下两行指令,只允许port 21 以及port 20 开放,其它关闭。 iptables -A INPUT -p tcp -m multiport
--dport 21,20 -j ACCEPT iptables -A INPUT -p tcp -j REJECT --reject-with
tcp-reset 3.2.9-2. 建置一个防火墙下的ftp server,使用PORT FTP mode: ftp port:2121 以及ftp data
port:2020 Step1. 执行以下两行指令,只允许port 2121 以及port 2020 开放,其它关闭。 iptables -A INPUT -p
tcp -m multiport --dport 2121,2020 -j ACCEPT iptables -A INPUT -p tcp -j REJECT
--reject-with tcp-reset Step2. 修改/etc/vsftpd/vsftpd.conf 新增底下两行 listen_port=2121
ftp_data_port=2020 Step3. 重新启动vsftpd [root@home vsftpd]# /sbin/service vsftpd
restart Shutting down vsftpd: OK ] Starting vsftpd for vsftpd: OK ] 在这边要注意,8、9
两个例子中,ftp client(如cuteftp)的联机方式不能够选择passive mode,否则无法建立数据的联机。也就是读者可以连上ftp
server,但是执行ls、get 等等的指令时,便无法运作。 3.2.10. 建置一个防火墙下的ftp server,使用PASS FTP mode: ftp
port:2121 以及ftp data port 从9981 到9986。 Step1. 执行以下两行指令,只允许port 2121 以及port
9981-9990 开放,其它关闭。 iptables -A INPUT -p tcp -m multiport --dport
2121,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990 -j ACCEPT iptables -A
INPUT -p tcp -j REJECT --reject-with tcp-reset Step2. 修改/etc/vsftpd/vsftpd.conf
新增底下四行 listen_port=2121 pasv_enable=YES pasv_min_port=9981 pasv_max_port=9986
Step3. 重新启动vsftpd [root@home vsftpd]# /sbin/service vsftpd restart Shutting down
vsftpd: OK ] Starting vsftpd for vsftpd: OK ] 在这边要注意,在10 这个例子中,ftp
client(如cuteftp)的联机方式必须选择passive mode,否则无法建立数据的联机。也就是读者可以连上ftp server,但是执行ls,get
等等的指令时,便无法运作。 3.2.11. 将vsftpd 与TCP_wrapper 结合若是读者希望直接在/etc/hosts.allow
之中定义允许或是拒绝的来源地址,可执行以下步骤。这是简易的防火墙设定。 Step1. 确定/etc/vsftpd/vsftpd.conf
之中tcp_wrappers 的设定为YES,如下图所 示: tcp_wrappers=YES 这是RedHat9 的默认值,基本上不需修改。 Step2.
重新启动vsftpd [root@home vsftpd]# /sbin/service vsftpd restart Shutting down
vsftpd: OK ] Starting vsftpd for vsftpd: OK ] Step3.
设定/etc/hosts.allow,譬如提供111.22.33.4 以及10.1.1.1 到10.1.1.254 连 线,则可做下图之设定: vsftpd :
111.22.33.4 10.1.1. : allow ALL : ALL : DENY 3.2.12. 将vsftpd 并入XINETD
若是读者希望将vsftpd 并入XINETD 之中,也就是7.x 版的预设设定,那 么读者可以执行以下步骤。 Step1.
修改/etc/vsftpd/vsftpd.conf 将 listen=YES 改为 listen=NO Step2. 新增一个档案:
/etc/xinetd.d/vsftpd 内容如下: service vsftpd { disable = no socket_type = stream
wait = no user = root server = /usr/sbin/vsftpd port = 21 log_on_success += PID
HOST DURATION log_on_failure += HOST } Step3. 重新启动xinetd [root@home vsftpd]#
/sbin/service xinetd restart Stopping xinetd: OK ] Starting xinetd: OK ] 3.2.3
设定档说明在范例中,有些省略的设定可以在这边找到,譬如联机的总数、同一个位址的联机数、显示档案拥有者的名称等等,希望读者细读后,可以做出最适合自己的设定。格式
vsftpd.conf 的内容非常单纯,每一行即为一项设定。若是空白行或是开头为#的一行,将会被忽略。内容的格式只有一种,如下所示 option=value
要注意的是,等号两边不能加空白,不然是不正确的设定。 ===ascii 设定=====================
ascii_download_enable 管控是否可用ASCII 模式下载。默认值为NO。 ascii_upload_enable 管控是否可用ASCII
模式上传。默认值为NO。 ===个别使用者设定=================== chroot_list_enable
如果启动这项功能,则所有的本机使用者登入均可进到根目录之外的数据夹,除了列 在/etc/vsftpd.chroot_list 之中的使用者之外。默认值为NO。
userlist_enable 用法:YES/NO 若是启动此功能,则会读取/etc/vsftpd.user_list
当中的使用者名称。此项功能可以在询问密码前就出现失败讯息,而不需要检验密码的程序。默认值为关闭。 userlist_deny 用法:YES/NO
这个选项只有在userlist_enable 启动时才会被检验。如果将这个选项设为YES,则在/etc/vsftpd.user_list 中的使用者将无法登入
若设为NO , 则只有在 /etc/vsftpd.user_list 中的使用者才能登入。而且此项功能可以在询问密码前就出现错误讯息,而不需要检验密码的程序。
user_config_dir
定义个别使用者设定文件所在的目录,例如定义user_config_dir=/etc/vsftpd/userconf,且主机上有使用者test1,test2,那我们可以在user_config_dir
的目录新增文件名为test1 以及test2。若是test1 登入,则会读取user_config_dir 下的test1 这个档案内的设定。默认值为无。
===欢迎语设定===================== dirmessage_enable
如果启动这个选项,使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,若是有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。
banner_file 当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。默认值为无。 ftpd_banner
这边可定义欢迎话语的字符串,相较于banner_file 是档案的形式,而ftpd_banner 是字串的格式。预设为无

TOP

===特殊安全设定==================== chroot_local_user
如果设定为YES,那么所有的本机的使用者都可以切换到根目录以外的数据夹。预设值为NO。 hide_ids
如果启动这项功能,所有档案的拥有者与群组都为ftp,也就是使用者登入使用ls -al之类的指令,所看到的档案拥有者跟群组均为ftp。默认值为关闭。
ls_recurse_enable 若是启动此功能,则允许登入者使用ls -R 这个指令。默认值为NO。 write_enable 用法:YES/NO
这个选项可以控制FTP 的指令是否允许更改file system,譬如STOR、DELE、 RNFR、RNTO、MKD、RMD、APPE
以及SITE。预设是关闭。 setproctitle_enable 用法:YES/NO 启动这项功能,vsftpd 会将所有联机的状况已不同的process
呈现出来,换句话说,使用ps -ef 这类的指令就可以看到联机的状态。默认值为关闭。 tcp_wrappers 用法:YES/NO 如果启动,则会将vsftpd
与tcp wrapper 结合,也就是可以在/etc/hosts.allow 与/etc/hosts.deny 中定义可联机或是拒绝的来源地址。
pam_service_name 这边定义PAM 所使用的名称,预设为vsftpd。 secure_chroot_dir
这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system
的权限时,就会将使用者限制在此数据夹中。默认值为/usr/share/empty ===纪录文件设定=====================
xferlog_enable 用法:YES/NO 如果启动,上传与下载的信息将被完整纪录在底下xferlog_file 所定义的档案中。预设为开启。
xferlog_file 这个选项可设定纪录文件所在的位置,默认值为/var/log/vsftpd.log。 xferlog_std_format
如果启动,则纪录文件将会写为xferlog 的标准格式,如同wu-ftpd 一般。默认值为关闭。 ===逾时设定======================
accept_timeout 接受建立联机的逾时设定,单位为秒。默认值为60。 connect_timeout 响应PORT
方式的数据联机的逾时设定,单位为秒。默认值为60。 data_connection_timeout 建立数据联机的逾时设定。默认值为300 秒。
idle_session_timeout 发呆的逾时设定,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线,单位为秒。默认值为300。
===速率限制====================== anon_max_rate 匿名登入所能使用的最大传输速度,单位为每秒多少bytes,0
表示不限速度。默认值为0。 local_max_rate 本机使用者所能使用的最大传输速度,单位为每秒多少bytes,0 表示不限速度。预设值为0。
===新增档案权限设定================== anon_umask 匿名登入者新增档案时的umask 数值。默认值为077。
file_open_mode 上传档案的权限,与chmod 所使用的数值相同。默认值为0666。 local_umask 本机登入者新增档案时的umask
数值。默认值为077。 ===port 设定====================== connect_from_port_20 用法:YES/NO
若设为YES,则强迫ftp-data 的数据传送使用port 20。默认值为YES。 ftp_data_port 设定ftp
数据联机所使用的port。默认值为20。 listen_port FTP server 所使用的port。默认值为21。 pasv_max_port
建立资料联机所可以使用port 范围的上界,0 表示任意。默认值为0。 pasv_min_port 建立资料联机所可以使用port 范围的下界,0
表示任意。默认值为0。 ===其它======================== anon_root 使用匿名登入时,所登入的目录。默认值为无。
local_enable 用法:YES/NO 启动此功能则允许本机使用者登入。默认值为YES。 local_root
本机使用者登入时,将被更换到定义的目录下。默认值为无。 text_userdb_names 用法:YES/NO 当使用者登入后使用ls -al
之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。默认值为NO。
pasv_enable 若是设为NO,则不允许使用PASV 的模式建立数据的联机。默认值为开启。 ===更换档案所有权===================
chown_uploads 用法:YES/NO 若是启动,所有匿名上传数据的拥有者将被更换为chown_username
当中所设定的使用者。这样的选项对于安全及管理,是很有用的。默认值为NO。 chown_username
这里可以定义当匿名登入者上传档案时,该档案的拥有者将被置换的使用者名称。预设值为root。 ===guest 设定=====================

TOP

guest_enable 用法:YES/NO 若是启动这项功能,所有的非匿名登入者都视为guest。默认值为关闭。 guest_username
这里将定义guest 的使用者名称。默认值为ftp。 ===anonymous 设定================== anonymous_enable
用法:YES/NO 管控使否允许匿名登入,YES 为允许匿名登入,NO 为不允许。默认值为YES。 no_anon_password
若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。 anon_mkdir_write_enable 用法:YES/NO
如果设为YES,匿名登入者会被允许新增目录,当然,匿名使用者必须要有对上层目录的写入权。默认值为NO。 anon_other_write_enable
用法:YES/NO 如果设为YES,匿名登入者会被允许更多于上传与建立目录之外的权限,譬如删除或是更名。默认值为NO。 anon_upload_enable
用法:YES/NO 如果设为YES,匿名登入者会被允许上传目录的权限,当然,匿名使用者必须要有对上层目录的写入权。默认值为NO。
anon_world_readable_only 用法:YES/NO 如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。
ftp_username 定义匿名登入的使用者名称。默认值为ftp。 deny_email_enable
若是启动这项功能,则必须提供一个档案/etc/vsftpd.banner_emails,内容为email
address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许联机。默认值为NO。
===Standalone 选项================== listen 用法:YES/NO 若是启动,则vsftpd
将会以独立运作的方式执行,若是vsftpd 独立执行,如RedHat9的默认值,则必须启动 若是vsftpd 包含在xinetd
之中,则必须关闭此功能,如RedHat8。在RedHat9 的默认值为YES。 listen_address 若是vsftpd 使用standalone
的模式,可使用这个参数定义使用哪个IP address 提供这项服务,若是主机上只有定义一个IP address,则此选项不需使用,若是有多个IP
address,可定义在哪个IP address 上提供ftp 服务。若是不设定,则所有的IP address均会提供此服务。默认值为无。
max_clients 若是vsftpd 使用standalone 的模式,可使用这个参数定义最大的总联机数。超过这个数目将会拒绝联机,0
表示不限。默认值为0。 max_per_ip 若是vsftpd 使用standalone 的模式,可使用这个参数定义每个ip address
所可以联机的数目。超过这个数目将会拒绝联机,0 表示不限。默认值为0。 ============================= 3.2.4 FTP
数字代码的意义 110 重新启动标记应答。 120 服务在多久时间内ready。 125 数据链路埠开启,准备传送。 150 文件状态正常,开启数据连接端口。
200 命令执行成功。 202 命令执行失败。 211 系统状态或是系统求助响应。 212 目录的状态。 213 文件的状态。 214 求助的讯息。 215
名称系统类型。 220 新的联机服务ready。 221 服务的控制连接埠关闭,可以注销。 225 数据连结开启,但无传输动作。 226
关闭数据连接端口,请求的文件操作成功。 227 进入passive mode。 230 使用者登入。 250 请求的文件操作完成。 257 显示目前的路径名称。
331 用户名称正确,需要密码。 332 登入时需要账号信息。 350 请求的操作需要进一部的命令。 421 无法提供服务,关闭控制连结。 425
无法开启数据链路。 426 关闭联机,终止传输。 450 请求的操作未执行。 451 命令终止:有本地的错误。 452 未执行命令:磁盘空间不足。 500
格式错误,无法识别命令。 501 参数语法错误。 502 命令执行失败。 503 命令顺序错误。 504 命令所接的参数不正确。 530 未登入。 532
储存文件需要账户登入。 550 未执行请求的操作。 551 请求的命令终止,类型未知。 552 请求的文件终止,储存位溢出。 553
未执行请求的的命令,名称不正确。

TOP

—————————————————— 3
在因特网上或是企业内部,有许多站点需要高质量的FTP应用和安全的服务控制,
如何能配置高质量应用的安全站点是企业应用和一些提供下载服务的网站的重要需
求。基于这个出发点,我们将使用VSFTP--very safe ftp--架设高质量应用的安全
FTP站点。

我们的步骤分为两大步:安装VSFTP和配置VSFTP。

第一步:安装VSFTP
准备:下载VSFTP源码包或VSFTP的RPM包软件,这里我使用的是vsftpd-
1.2.1.tar.gz,这是目前VSFTP的最高版本,或是使用RPM包,我下载了vsftpd-
1.1.3-8.i386.rpm,无论你使用哪种包安装vsftp都需要有root权限。

使用tar.gz源码包安装VSFTP,把下载的源码包放在一个目录下,这里我建一个目
录ftp,所有的操作都在这个目录下进行:
mkdir ftp
把vsftpd-1.2.1.tar.gz复制到目录ftp下:
cp 下载vsftpd-1.2.1.tar.gz放置目录 ftp/
进入ftp目录:
cd ftp
接下来解压:
tar zxvf vsftpd-1.2.1.tar.gz
解压之后ftp目录下多了一个名为vsftpd-1.2.1的目录,进入该目录编译VSFTP:
cd vsftpd-1.2.1
编译:
make
编译之后目录下多了一个可执行文件vsftpd,
#ls -l vsftpd
-rwxr-xr-x 1 root root 77144 4月 13 21:17 vsftpd
这是vsftp的主程序。因为vsftp默认需要使用"nobody"这个用户来配置,所以你必
须确定你的系统中有这个用户,一般说都会有的,但为了明确起见,执行下述命令
添加nobody用户:
#adduser nobody
adduser: user nobody exists
因为我的系统里已经有nobody用户了,所以提示该用户已经存在了。
vsftp默认的配置还需要一个空的目录(empty),该目录的绝对路径应该是
/usr/share/empty/,另外若ftp服务器需要匿名用户(anonymous)需要加一个用户
ftp,此用户的要求这样:用户目录设为/var/ftp,它是VSFTP的匿名用户的映射本
地用户,即指anonymous用户在进程中以ftp用户身分运行 进程,但anonymous用户
并不继承了ftp用户的文件权限,它只拥有其他组的文件权限。可使用下述的命令
完成上面的需求:
#mkdir /var/ftp/
#useradd -d /var/ftp ftp
如果你的系统已经存在有ftp用户的话,使用下面的命令更改目录属主和用户目录:
#chown root.root /var/ftp
#chmod og-w /var/ftp
接下来把编译的文件安装到相应目录:
make install
安装之后,在/usr/local/sbin/目录下有vsftpd这个主程序。
在/etc/xinetd.d下也有一个vsftpd配置文件,这个文件是由xinetd守护进程启动
vsftpd的配置文件。另外你不使用xinetd启动vsftp的话,你应该在/etc/目录下加
一个vsftp的配置文件,默认的文件名为/etc/vsftpd.conf,这个文件你可以手动
编辑,但在我们的源码目录里已经有一个样本配置文件了,可以直接修改这个文件
以满足我们的需求,现在把这个样本配置文件拷贝到这个目录下:
#cp vsftpd.conf /etc/
这样在/etc/下有一个配置文件vsftpd.conf了。
我们来测试一下VSFTP是否能够正常运行,我们采取使用独立进程而不是xinetd来
启动VSFTP,这样要在刚才的文件/etc/vsftpd.conf后面加入一行:
listen=YES
加入之后用下面的命令试试启动VSFTP:
#/usr/local/sbin/vsftpd &
[1] 7208
好了,VSFTP已经启动,进程号为7208。
接下来测试FTP(你应该确定你的机器里没有里别的FTP服务软件运行,否则使用相
同的端口会发生冲突):
# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.2.1)
Name (127.0.0.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
OK,FTP服务器运行正常,使用匿名用户ftp登陆成功,你也可以使用anonymous代
替用户名ftp,一样可以成功登陆。

使用RPM包安装VSFTP就容易多了,只需要执行下面的命令:
#rpm -ivh sftpd-1.1.3-8.i386.rpm

好了,看来我们的VSFTP至此为止安装得很正确并且运行得非常良好,这样我们可
以进入第二大步:配置VSFTP。

第二步:配置VSFTP
a)使本地用户能登录FTP。按照上面的源码安装配置我们的FTP还不能让本地用户登
录,因为缺少一个认证PAM文件,在源码目录下有一个RedHat/vsftpd.pam认证文
件,把它复制到/etc/pam.d/ftp。
#cp RedHat/vsftpd.pam /etc/pam.d/ftp
测试一下,假设有一个本地用户test,登录FTP:
#ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.2.1)
Name (127.0.0.1:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
看来情况很好:)
b)配置匿名用户有浏览,读写,创建目录权限的FTP。这种配置的FTP是极度不安全
的FTP,但在某些FTP网站上可能希望能匿名用户能上传文件,因此有必要讲解一下:
编辑配置VSFTP的配置文件vsftpd.conf,在文件加入下面几行:
anon_world_readable_only=NO //关闭匿名用户只读权限,这个选项是控制匿名用
户只能下载具有可读权限的文件,绝不允许有其他权限,特别是写权限,因此要使
匿名用户有写权限,应该禁止它
anon_upload_enable=YES //匿名用户上传权限开放
anon_mkdir_write_enable=YES //匿名用户写和创建目录权限开放
write_enable=YES //这是VSFTP控制用户改变文件系统的权限的选项,若任何用户
要使用改变文件系统命令(如,读写,删除等等操作)都必须使它开放,默认值是NO
OK,保存后退出。
测试:
#ftp127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.2.1)
Name (127.0.0.1:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put mp3.txt
local: mp3.txt remote: mp3.txt
227 Entering Passive Mode (127,0,0,1,25,17)
150 Ok to send data.
226 File receive OK.
682 bytes sent in 0.00885 secs (75 Kbytes/sec)
测试成功,匿名用户已经有了上传的权限。

TOP

几点说明:
1, anon_other_write_enable选项可以使匿名用户删除文件目录,一般不开启。
2,匿名用户要拥有上传的权限除应该在上面VSFTP的配置文件里设置几项之外,还
应该使目录的其他组权限有写的权限。
c)其他的几种有用的配置选项。
1,开启ACSII上传下载传输模式
ascii_download_enable=YES //开启了下载时的ASCII模式数据传输
ascii_upload_enable=YES //开启了上传时的ASCII模式数据传输
因为二进制传输不用进行二进制和ASCII码之间的相互转化,因而速度较ASCII模式
快,VSFTP在默认情况下是不开启ASCII码传输模式的,上述两个语句使ASCII上传
下载传输模式分别开启。
2,更改FTP服务器默认监听端口
listen_port=2121 //改变默认的21端口号为2121
3,设置用户会话的空闲中断时间
idle_session_timeout=300 //连接服务器的用户在5分钟时间内没有任何动作将被
断开,默认为300
4,设置空闲的数据连接的中断时间
data_connection_timeout=300 //数据连接空闲5分钟将被断开,默认为300秒
5,设置客户端空闲时的自动中断和激活连接的时间
accept_timeout=60 //客户端建立PASV模式数据连接空闲1分钟自动中断,默认为60秒
connect_timeout=60 //客户端在中断1分钟后自动激活连接,默认为60秒
6,设置最大传输速率限制
local_max_rate=50000 //本地用户最大传输速率为50kbytes/s
anon_max_rate=30000 //匿名用户最大传输速率为30kbytes/s
若把上述的数值设为0则为不限速,这也是VSFTP的默认值。
7,设置最大客户端连接数
max_clients=30 //服务器最大连接数设为30,默认为0,即不加以限制,安全的
FTP应该加以限制
8,设置客户端连接时的端口范围
pasv_min_port=50000
pasv_max_port=60000
上述语句使客户端连接端口范围在50000至60000之间,这有利于提高服务器的安
全。默认两个值都是0,即不限制,使用任意端口。
9,把用户限制在家目录,即设置chroot()
chroot_local_user
chroot_list_enable
chroot_list_file
要设置chroot(),可以使用
chroot_local_user=YES
上述语句是使全部的本地用户都被限制在家目录,这无法只限制特定的用户,要限
制特定用户,使用下面的方法:
chroot_local_user=NO //关闭本地用户chroot()
chroot_list_enable=YES //开启要设置chroot()用户项
chroot_list_file=/etc/vsftpd.chroot_list //指定要设置chroot()的特定用户
文件,这个文件的格式应该每个用户名占用一行
11,开启进站或进入目录的欢迎或说明性文字
dirmessage_enable=YES //开启目录文字选项
message_file=.welcome //欢迎或说明性文字文件设为.welcome,在默认是.message
这样在目录下建立文件.welcome(默认是.message),在用户进入目录时可把该文件
的内容显示出来。
10,开启FTP服务器的日志功能
xferlog_enable=YES //启动日志记录功能,记录在xferlog_file指明的文件里
xferlog_file=/var/log/ftp.log //日志记录在文件/var/log/ftp.log里,默认值
为/var/log/xferlog
上面不是默认配置,默认配置是如下语句
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log //日志记录在/var/log/vsftpd.log里,
默认也是这个文件
默认配置xferlog_std_format语句没有启用。

TOP

d)配置基于用户的访问控制
有两种方法:
A)使用认证文件,前面我们让本地用户能够登录服务器的时候是使用源码树里的一
个样本pam文件(RedHat/vsftpd.pam),把它复制到/etc/pam.d/目录下并改名为ftp
就可使本地用户登录,改名为ftp的原因是VSFTP默认的pam认证文件名为ftp,但我
们可以使用下面的语句来改变
pam_service_name=vsftppam //这样设置后VSFTP使用/etc/pam.d/vsftppam文件来
认证用户
回来主题,应该如何使本地用户不能登录呢?回想到原来本地用户不能够登录是因
为没有ftp这个认证文件,那么我们把它删除就可以了。
B)使用VSFTP相关的几个语句
userlist_enable
userlist_deny
userlist_file
用这三个语句可以控制指定用户不能登录,方法如下:
userlist_enable=YES //用户清单功能开启
userlist_deny=YES //把用户清单设为拒绝用户清单
userlist_file=/etc/vsftpd.user_list //用户清单文件为
/etc/vsftpd.user_list,这个文件的格式也是一个用户名占用一行
因为第二个语句把文件/etc/vsftpd.user_list设为拒绝用户清单,那么,文件里
面的用户名都不能登录。
或是另外一种设置方法:
userlist_enable=YES //用户清单功能开启
userlist_deny=NO //把用户清单设为接受用户清单
userlist_file=/etc/vsftpd.user_list //用户清单文件为/etc/vsftpd.user_list
因为第二个语句把文件/etc/vsftpd.user_list设为接受用户清单,那么,文件里
面的用户名都能登录,不在文件里的用户不能登录。
从这里可以看出userlist_deny语句起了开关的作用,可把用户清单文件设为拒绝
或是接受,是不是很有趣?:)

e)配置安全的匿名FTP站点。要求匿名用户只有浏览和下载权限,没有其他的用户。
通过上面的学习,配置这种常见的匿名FTP站点很容易:
首先,把本地用户禁止登录,可以使用上面介绍的方法,这里不再复述。
然后,确定把下面的语句设为下面的样例:
anon_world_readable_only=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
write_enable=NO
这样做之后,就能有一个满足要求的FTP站点了,其实只要设
anon_world_readable_only=YES也可以做到上述效果的了。

f)上面讲述的启动服务器的方法是都是以独立(standalone)进程的方式启动的,还
有一种启动VSFTP的方法,就是使用超级服务器xinetd启动,这两种方法的区别
是,xinetd的启动使支持的并发进程比独立进程方式启动少,不适合访问人数多的
大站点,一般如果访问的流量少可以使用xinetd启动,如果是访问的流量多应该以
独立方式启动。好了,下面介绍以xinetd启动的方法:
编辑/etc/vsftpd.conf把原来加入的listen=YES这行删除,或前面加注释#
编辑/etc/xinetd.d/vsftpd(这个文件在源码安装时已经被复制存在了),确定这行
值为NO:
disable= NO
执行下面的命令重启xinetd服务器:
#service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
#ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.2.1)
Name (127.0.0.1:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
成功通过xinetd启动VSFTP了。
可以通过xinetd的功能实现控制VSFTP,下面一一介绍:
1,配置基于主机的访问控制
配置基于主机的访问控制可以使用超级服务器xinetd的功能,由xinetd去控制特定
的IP可以访问FTP服务器,VSFTP只提供基于本地用户的访问控制,控制特定的访问
可使用下面的xinetd的语句:
only_from //允许访问IP
no_access //拒绝访问IP
per_source //每个IP的最大连接数
instances //并发最高连接数
access_time //访问时间
banner_fail //登录失败显示的内容文件
这里的具体使用属于xinetd的内容,读者可以参考相关内容,这里就不多说了
2,配置绑定IP的FTP服务器
LINUX下可以使用虚拟网卡,这样我们就可以利用xinetd为VSFTP配置几个绑定IP的
FTP服务器,执行如下的步骤来创建一个新的虚拟网卡,网卡IP可以自己指定,假
定我们原来的IP为192.168.0.2,新加的IP为192.168.0.3,则:
#cp /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0:0
编辑/etc/sysconfig/network-scripts/ifcfg-eth0,把其中的相关字段改为如下
的值:
DEVICE="eth0:0"
IPADDR="192.168.0.3"
保存后退出,执行下面的命令激活虚拟网卡eth0:0
#ifup eth0:0
这样就成功配置了虚拟网卡,现在我们要配置两个FTP服务器,分别绑定到
192.168.0.2和192.168.0.3。
编辑/etc/xinetd.d/vsftpd,加入下面两行
server_args=/etc/vsftp.conf
bind=192.168.0.2
并确定disable=NO。
复制/etc/xinetd.d/vsftpd为/etc/xinetd.d/ftp,复制配置文件
/etc/vsftpd.conf为第二个服务器的配置文件/etc/ftp.conf
#cp /etc/xinetd.d/vsftpd /etc/xinetd.d/ftp
#cp /etc/vsftpd.conf /etc/ftp.conf
编辑/etc/xinetd.d/ftp,改bind=192.168.0.2为bind=192.168.0.3,改
server_args=/etc/vsftp.conf为server_args=/etc/ftp.conf同样disable=NO。
保存并退出。
为新的服务器加一个匿名用户映射的本地用户,类似我们安装的时候执行的命令一样:
#mkdir /var/ftp2/
#useradd -d /var/ftp2 ftp2
#chown root.root /var/ftp2
#chmod og-w /var/ftp2
这样就建立了映射的本地用户ftp2,家目录为/var/ftp2,这也是该服务器匿名用
户登录时的根目录。
现在可以编辑第二个FTP服务器的配置文件/etc/ftp.conf了,首先把映射用户由默
认的ftp改为我们新建的用户ftp2,但要注意,匿名用户登录的时候还是用
anonymous或是ftp,用ftp2不能登录。使用下面的语句:
ftp_username=ftp2
另外,因为VSFTP默认是使用/etc/pam.d/ftp为本地用户的认证文件,所以现在两
个服务器都是共用一个/etc/pam.d/ftp认证文件的,可以编辑/etc/ftp.conf使用
下面的语句更改默认的认证文件使IP为192.168.0.3的新的FTP服务器使用新的认证
文件,从而把两个服务器完全的独立开来:
pam_service_name=ftp2
这样就把192.168.0.3FTP服务器的认证文件改为/etc/pam.d/ftp2,若这个文件不
存在,本地用户不能登录该服务器。
好了,另外的修改你可以参照上面的介绍修改以定制新的服务器的属性来满足需求。
修改/etc/ftp.conf完毕,保存退出。
用下面的命令重启xinetd:
#service xinetd restart
另外要确定两个服务器的配置文件没有listen=YES这一句,因为我们是以xinetd启
动VSFTP服务器的。好了,可以进行测试了,具体过程不说了,结果说一下:以
127.0.0.1不能访问任何的FTP服务器,但以192.168.0.2和192.168.0.3却可以分别
访问两个服务器。

g)其实以独立方式启动FTP也可以创建虚拟服务器,下面把上面的两个服务器改为
由独立方式启动的模式,直接更改它们两个配置文件就可以了:
编辑第一个服务器的配置文件/etc/vsftpd.conf,加入下面的两行:
listen_address=192.168.0.2
listen=YES
编辑第二个服务器的配置文件/etc/ftp.conf,加入下面的两行:
listen_address=192.168.0.3
listen=YES
保存后退出,由下面的命令来启动服务器:
#/usr/local/sbin/vsftpd /etc/ftp.conf &
[1] 2196
# /usr/local/sbin/vsftpd /etc/vsftpd.conf &
[2] 2201
测试一下,两个服务器都成功运行了。
h)VSFTP一个称为安全的保证是采用了虚拟用户的认证方式,它靠对/etc/pam.d/目
录下指定的一个认证文件对用户进行认证,认证成功后再把虚拟用户映射为本地用
户,该本地用户由服务器配置文件里的语句ftp_username的值指定。现在详细介绍
虚拟用户的使用方法,使用PAM文件认证虚拟用户的方法需要有一个口令数据库文
件来存储虚拟用户名和对应密码,首先建立一个文本文件,里面包含虚拟用户名和
对应的密码,格式为虚拟用户名和密码各占一行,虚拟用户名后紧跟对应密码,举
个例子,在我的家目录下有一个虚拟用户名和密码的文本文件test.txt
#cat ~/test.txt
test1
test1password
test2
test2password
格式就像上面的一样。
把上面的文本文件生成口令数据库文件以供PAM认证,这要用到db_load命令:
#db_load -T -t hash -f ~/test.txt /etc/user_passwd.db
这样我们就生成了/etc/user_passwd.db口令数据库文件。
在192.168.0.2服务器的PAM文件中加入这个口令数据库文件/etc/pam.d/ftp,删除
掉原来的所有行或在前面加#注释掉,然后加入下面两行
auth required /lib/security/pam_userdb.so db=/etc/user_passwd
account required /lib/security/pam_userdb.so db=/etc/user_passwd
保存后退出,因为虚拟用户要映射为本地的用户,因此我们应该再加一个用户:
#adduser -d /var/ftp3/ ftp3
#chmod 605 /var/ftp3
然后编辑192.168.0.2服务器的配置文件/etc/vsftpd.conf:
加入或修改下面几个语句(值):
guest_enable=YES //开启虚拟用户的功能
guest_username=ftp3 //虚拟用户映射为本地用户ftp3
pam_service_name=ftp //PAM认证文件为/etc/pam.d/ftp
保存后退出。
启动服务:
# /usr/local/sbin/vsftpd /etc/vsftpd.conf &
分别用ftp或anonymous和test1或test2测试服务器,结果都能连通服务器,并且,
匿名和虚拟用户登录后的根目录都不同,但在VSFTP推荐是不开启匿名服务,以策
安全,但小心设置用户权限之后还是可以在保证系统安全的情况下一起开启匿名和
虚拟用户的。
对虚拟用户分别分配权限,具体做法如下:
1,修改服务器配置文件,在这里192.168.0.2服务器的配置文件为
/etc/vsftpd.conf,在顶部加入一行:
user_config_dir=/etc/user_config //存放用户权限的配置文件的目录为
/etc/user_config
2,建立存放用户权限的配置文件的目录/etc/user_config/
#mkdir /etc/user_config/
3,在上面的目录下分别建立以每个用户的名称为文件名的文件,每个用户的文件
里写入此用户的权限。在下面的例子里,我为test1用户建立具有浏览,下载,上
传的权限,为test2用户建立具有浏览,下载的权限。
#echo "anon_world_readable_only=YES">/etc/user_config/test2 //test2用户
只有读权限
#echo</etc/user_config/test2
>anon_world_readable_only=YES
>write_enable=YES
>anon_upload_enable=YES
>! //test1用户有浏览,上传,下载的权限
4,重启服务器:
#killall vsftpd
# /usr/local/sbin/vsftpd /etc/vsftpd.conf &
测试发现,两个用户的权限和我们希望的一样:)
5,不一定所有的测试都能成功,因为上面的讲解还不完善,还需要有几点特别注
意的问题:
a)在服务器的配置文件(我们的例子里是/etc/vsftpd.conf)里的设置能覆盖用户权
限的配置文件的设置(这里是目录/etc/user_config/下的文件),举个例子说明,
像上面如果配置了用户了test2只有读权限,但在服务器配置文件里我们设置了匿
名用户有读写权限,那么,可怕的事情会发生,test2也拥有读写权限!并且,像
上面配置的匿名用户和虚拟用户test2即使不在同一个根目录,匿名用户在服务器
配置文件里的匿名用户根目录的读写权限也一样会使虚拟用户它的根目录拥有读写
权限,听起来好像很复杂,但只要读者测试一下就会明白。
b)设置用户权限时要考虑用户映射的用户的文件系统权限,举个例子,如果用户虽
然在配置文件里设置了有可写权限,但它在文件系统上是没有写权限的,综合的结
果用户还是没有写权限。
c)这里总结一下,对于权限的设置不言而喻是很重要的,上面给出的要考虑方面应
该综合起来分析,权限之间的制约关系要分清,才能正确的设置用户的权限。

OK,所有的安装配置都已经讲完了,现在完全可以利用VSFTP构建一个安全的FTP站
点了。

TOP

NND 只看懂一部分。

TOP

TOP

 13 12
发新话题