Linux系统下vsftp服务器搭建(二)




对虚拟用户设置不同的权限


1、设置主配置文件:

在vsftpd.conf文件中添加用户配置文件目录设置

user_config_dir=/etc/vsftpd/vsftpd_user_conf


2、建立用户配置文件目录

# mkdir /etc/vsftpd/vsftpd_user_conf


3、为虚拟用户建立单独的配置文件

用户配置文件名称与用户名相同,如:

 touch /etc/vsftpd/vsftpd_user_conf/用户1

 touch/etc/vsftpd/vsftpd_user_conf/用户2

 touch/etc/vsftpd/vsftpd_user_conf/用户3


虚拟用户配置文件中的配置项


            每个FTP虚拟用户都可以独立设置其权限,如:

local_root=/home/ftpsite

            设定虚拟用户FTP主目录,使无法向上跳转

write_enable=YES

            允许此用户具有写权限

anon_world_readable_only=NO

            表示用户可以浏览FTP目录和下载文件

anon_upload_enable=YES

            表示用户可以上传文件

anon_mkdir_write_enable=YES

            表示用户具有建立和删除目录的权利

anon_other_write_enable=YES

            表示用户具有文件改名和删除文件的权限


【管理员用户权限配置--示例】

local_root=/home/ftpsite

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES


【上传用户权限配置--示例】

local_root=/home/ftpsite

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=NO

anon_other_write_enable=NO


【下载用户权限配置--示例】

local_root=/home/ftpsite

write_enable=NO

anon_world_readable_only=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

配置vsftpd服务器中的资源限制

vsftpd服务器中的资源使用可以进行限制(修改主配置文件vsftpd.conf),如:



限制用户只能访问/bbb,不能访问其他路径

  修改/etc/vsftpd/vsftpd.conf如下:

  chroot_list_enable=YES             //限制访问自身目录



max_clients=100

设置FTP服务器允许的最大客户端连接数,0:不限制

max_per_ip=5

设置对于同一IP地址允许的最大客户端连接数,0:不限制

local_max_rate=500000

设置本地用户的最大传输速率,单位bytes/sec,0:不限制

anon_max_rate=200000

设置匿名用户的最大传输速率,单位bytes/sec,0:不限制


当root不能登录时查看限制的登录用户列表



(注:修改主配置文件vsftpd.conf后应重启vsftpd服务)



…………………………………………我是一条分割线……………………………………………………


某公司vsftp服务器_vsftpd.conf配置文件 示例:


# Example config file /etc/vsftpd/vsftpd.conf


anonymous_enable=NO

local_enable=YES

write_enable=NO

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

#chown_uploads=YES

#chown_username=whoever

#xferlog_file=/var/log/xferlog

xferlog_std_format=YES

#idle_session_timeout=600

#data_connection_timeout=120

#nopriv_user=ftpsecure

#async_abor_enable=YES

#ascii_upload_enable=YES

#ascii_download_enable=YES

#ftpd_banner=Welcome to blah FTP service.

#deny_email_enable=YES

#banned_email_file=/etc/vsftpd/banned_emails

# chroot_list_enable=YES

#chroot_list_file=/etc/vsftpd/chroot_list

#ls_recurse_enable=YES

listen=YES

#listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES

guest_username=dhwl

user_config_dir=/etc/vsftpd/vsftpd_user_conf

chroot_local_user=YES




解决方法:

1 用ntsysv停止服务gssftp

2 重新启动xinetd服务

3 重启vsftpd,就可以了。


DOS下使用ftp命令:


1. 切换到指定目录下
2. 连接目标ftp服务器:ftp 10.137.97.29
3. 输入帐号、密码
4. 切换传输方式,二进制传输使用bin命令
5. 上传文件:put test_setup.zip

   下载文件:get **.zip
6. 退出ftp:bye

7. cd 切换目录

8. del 删除文件

9. dir 查看远程主机当前目录

10. ascii 使用ascii方式传输文件

11. mput、mget:将多个文件上传、下载

12. mkdir 在远程主机中建立目录

13. pwd 显示远程主机的当前工作目录路径



ftp客户连接常见故障现象

现象0:
> ftp: connect :连接被拒绝
原因:服务没启动
解决: # chkconfig vsftpd on


现象1:
500 OOPS: cannot open user list file
原因:不存在文件“/etc/vsftpd.user_list”或文件中不存在该帐户
解决: # echo username >> /etc/vsftpd.user_list


现象2:
530 Permission denied.
Login failed.
原因: “/etc/vsftpd.user_list”文件中不存在当前登陆用户
解决: # echo username >> /etc/vsftpd.user_list


现象3:
500 OOPS: cannot open chroot() user list file
Login failed.
原因:不存在文件“/etc/vsftpd.chroot_list”
解决: # echo username >> /etc/vsftpd.chroot_list


现象4:
500 OOPS: missing value in config file
Connection closed by remote host.
原因: “=”等号前值有问题,或只有一个空格
解决:修正相应的值即可,可能过 diff 来比较查找


现象5:
500 OOPS: bad bool value in config file
Connection closed by remote host.
原因: “=”等号后值有问题
解决: 将“=”等号后值确认修改


现象6:
500 OOPS: unrecognised variable in config file
Connection closed by remote host.
原因:参数前有空格
解决:将参数前空格删除


现象7、
确认存在“local_enable=YES”,但本地用户无法登陆
原因:验证参数被误删除
解决:添加“pam_service_name=vsftpd”

现象8、
500 OOPS: chdir
500 OOPS: child died
Connection closed by remote host.
原因:用户主目录没有权限或没有主目录
解决:正确设置用户主目录权限