分类: LINUX
2008-03-23 16:53:18
配置文件名称 |
功能说明 |
/usr/sbin/vsftpd |
Vsftpd的主程序 |
/etc/rc.d/init.d/vsftpd |
启动脚本 |
/etc/vsftpd/vsftpd.conf |
|
/etc/pam.d/vsftpd |
PAM认证文件 |
/etc/vsftpd.ftpusers |
禁止使用Vsftpd的用户列表文件 |
/etc/vsftpd.user_list |
禁止或允许使用Vsftpd的用户列表文件 |
/var/ftp |
匿名用户主目录 |
/var/ftp/pub |
|
/etc/logrotate.d/vsftpd.log |
Vsftpd的日志文件 |
此外,还有一些说明文档和手册文件。
1 了解日志文件
了解日志文件对于非常重要,这里介绍详细设置方法。vsftpd与log有关的选项:
vsftpd_log_file xferlog_enable xferlog_std_format xferlog_file dual_log_enable syslog_enable log_ftp_protocol no_log_lock |
xferlog_enable=yes/no //是否启用 xferlog 日志格式 xferlog_file=/path/to/logfile //xferlog 日志文件所在位置,默认为/var/log/xferlog |
dual_log_enable=yes/no //是否采用Vsftpd自己的日志记录方式 log_ftp_protocol=yes/no //是否记录所有的ftp命令日志 vsftpd_log_file=/path/to/logfile //指定vsftpd 日志文件位置,默认为/var/log/vsftpd.log,xferlog_enable的默认值为no(vsftpd提供的配置文件模版将其值改为了yes),dual_log_enable的默认值也为no,就是说默认情况下vsftpd是不记录日志的。我们也可以将日志信息写入系统日志/var/log/messages中,使用如下参数: syslog_enable=yes/no |
Thu Mar 4 08:12:30 2008 1 202.114.40.242 37 /incoming/index.html a _ o a guest@my.net ftp 0 * c
第一行各个数据参数如下表
记录数据 |
参数说明 |
Thu Mar 4 08:12:30 2008 |
|
1 |
传输文件时间,单位秒 |
202.114.40.242 |
远程主机IP地址 |
/incoming/index.html |
传输文件名称,包括路径 |
a |
传输类型包括:
a :ascii码传输,b:二进制文件传输 |
_ |
特殊处理标志:
-:没有处理
C :文件压缩
U:文件不压缩
T:文件tar格式 |
o |
文件传输方向
i:从 客户端到服务器 |
a |
访问模式:
a:匿名的用户
g:来宾用户
r:本地用户即系统用户 |
guest@my.net |
用户名称 |
ftp |
服务类型 |
0 |
认证方式包括:
1 rfc931 认证
0:没有进行认证 |
* |
认证用户的id |
c |
完成状态:
c 完全的传输转移。
i:没有完成传输 |
1 日志文件文件出现错误信息“500 OOPS: vsftpd: not found: directory given in 'secure_chroot_dir':/usr/share/empty”。
解决方法:vsftpd.conf 添加一行:
secure_chroot_dir=/opt/usr/share/empty
建立一个目录
mkdir /opt/usr/share/empty
然后关闭匿名登录把 vsftpd.conf
中的anonymous_enable=YES
修改为
anonymous_enable=NO
解决方法:
当尝试在vsftpd下chroot虚拟用户的时候,需要这样做:在vsftpd.conf里
guest_enable=yes
#virtual users are mapped to user ftp which owns all dirs
guest_username=ftp
#chroots the virtual user to his directory (user joe has directory joe)
chroot_local_user=YES
user_sub_token=$USER
关键的事情是确保在/etc/passwd的ftp用户的主目录实际上包含在/var/ftp/$USER里的字符串$USER 守护会做一个简单的字符串匹配比较,来决定到哪里替换用户的名字。
3 vsftp中怎样限制用户只能在自己的home目录下?
解决方法:
有些时候你不想让FTP用户可以访问他自己home目录之外的其他文件。vsftp守护进程可以通过chroot配置这个策略。编辑/etc/vsftpd/vsftpd.conf文件,添加一行:
chroot_local_user=YES
保存之后记得重启vsftpd服务:
service vsftpd restart
重启服务之后,FTP所有用户都将受限制,只能访问他们home目录的文件了。
4如何修改vsftpd的默认根目录/var/ftp/pub到另一个目录?
解决方法:修改ftp的根目录只要修改/etc/vsftpd/vsftpd.conf文件即可:
加入如下两行:
local_root=/var/www/html
chroot_local_user=YES
重新启动服务:
service vsftpd restart
任何一个用户ftp登录到这个服务器上都会chroot到/var/www/html目录下。