QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1081|回复: 1

vsftpd配置文件所有参数列表及(1.2.1)

[复制链接]
发表于 2004-4-19 16:12:56 | 显示全部楼层 |阅读模式
记得在CU内灌水时,老是有朋友问,vsftpd要如何实现禁止list的功能~~呵呵,我也曾经问过.
记得以前我为了实现这个功能,还专门修改了vsftpd的源代码的~~
可是就在我昨天为了想要给vsftpd增加新的功能时,竟然发现了一件很令我开心的事:那就是vsftpd本身自带有禁止目录列表的功能!!

在vsftpd的源代码文件parseconf.c中,大约是在第84行是这样子的:
[code:1]
  { "dirlist_enable", &tunable_dirlist_enable },
[/code:1]
当时我就想,莫非这个变量就是与禁止目录列表有关的??于是我在配置文件中把这个参数设置为NO后,果然如此!后来我用google搜索了一下dirlist_enable,结果竟然只搜索出47条相关的记录,而且没有一条是简体中文的,记得以前看网上极流行的<<vsftpd配置大全>>的文章中,也没有提到这个参数~~

下面我贴出vsftpd源代码中所有的参数,给大家参考一下,有很多参数我不知道是什么意思来的,大家不妨找一下,看有没有自己需要的.

这些是设置为YES/NO的,
[code:1]
parseconf_bool_array[] =
{
  { "anonymous_enable", &tunable_anonymous_enable },//是否可以匿名登录
  { "local_enable", &tunable_local_enable },//是否允许本地用户登录
  { "pasv_enable", &tunable_pasv_enable },//是否允许使用pasv传输方式
  { "port_enable", &tunable_port_enable },//是否允许使用port方式
  { "chroot_local_user", &tunable_chroot_local_user },//是否可以转移到用户目录的上层目录?
  { "write_enable", &tunable_write_enable },//是否可以执行写操作
  { "anon_upload_enable", &tunable_anon_upload_enable },//匿名用户是否可以上传?
  { "anon_mkdir_write_enable", &tunable_anon_mkdir_write_enable },//匿名用户是否可以创建目录?
  { "anon_other_write_enable", &tunable_anon_other_write_enable },//匿名用户是否可以执行其它写的操作(除上面两个外)
  { "chown_uploads", &tunable_chown_uploads },//上传的文件的属主是否为登录用户(可能不太对)?
  { "connect_from_port_20", &tunable_connect_from_port_20 },//是否只能从20端口连接
  { "xferlog_enable", &tunable_xferlog_enable },//是否记录传输日志
  { "dirmessage_enable", &tunable_dirmessage_enable },//是否显示目录欢迎词
  { "anon_world_readable_only", &tunable_anon_world_readable_only },//匿名用户是否只能读文件
  { "async_abor_enable", &tunable_async_abor_enable },//不太清楚,应该与取消操作有关
  { "ascii_upload_enable", &tunable_ascii_upload_enable },//是否允许ASCI方式上传
  { "ascii_download_enable", &tunable_ascii_download_enable },//是否可以ASCII方式下载
  { "one_process_model", &tunable_one_process_model },//采用单进程方式,网上有详细的介绍,我不太明白
  { "xferlog_std_format", &tunable_xferlog_std_format },//是否采用传输记录基本格式
  { "pasv_promiscuous", &tunable_pasv_promiscuous },
  { "deny_email_enable", &tunable_deny_email_enable },//是否禁止匿名用户用/etc/vsftpd.banner_emails内的邮箱地址登录
  { "chroot_list_enable", &tunable_chroot_list_enable },//本地使用者登录后是否可进到根目录之外的数据夹,除了列
在/etc/vsftpd.chroot_list 之中的用户
  { "setproctitle_enable", &tunable_setproctitle_enable },//是否将所有连接的状况用不同的进程列出?
  { "text_userdb_names", &tunable_text_userdb_names },//显示文件所有者的用户名还是用户ID
  { "ls_recurse_enable", &tunable_ls_recurse_enable },//禁止ls -R命令否
  { "log_ftp_protocol", &tunable_log_ftp_protocol },//是否记录所有FTP的请求与响应到日志中???
  { "guest_enable", &tunable_guest_enable },//是否允许虚拟用户登录
  { "userlist_enable", &tunable_userlist_enable },//是否结合/etc/vsftpd.user_list文件中的用户名称来认证用户登录 .
  { "userlist_deny", &tunable_userlist_deny },//与上面的相同,在上面的设为YES后才有效,设为YES,/etc/vsftpd.user_list 文件中的才能登录,反之则不能
  { "use_localtime", &tunable_use_localtime },//是否使用本地时间或GMT
  { "check_shell", &tunable_check_shell },//是否检查用户的SHELL
  { "hide_ids", &tunable_hide_ids },//是否隐藏用户和组的ID
  { "listen", &tunable_listen },//是否按侦听模式运行
  { "port_promiscuous", &tunable_port_promiscuous },//??
  { "passwd_chroot_enable", &tunable_passwd_chroot_enable },//CHROOT时是否需要密码
  { "no_anon_password", &tunable_no_anon_password },//匿中用户登录时是否需要填写密码
  { "tcp_wrappers", &tunable_tcp_wrappers },//是否与TCP_WAPPERS结合,
  { "use_sendfile", &tunable_use_sendfile },//是否使用sendfile方式传输文件
  { "force_dot_files", &tunable_force_dot_files },
  { "listen_ipv6", &tunable_listen_ipv6 },//是否可用IPV6方式来连接?
  { "dual_log_enable", &tunable_dual_log_enable },//是否记录FTP的日志和传输日志??
  { "syslog_enable", &tunable_syslog_enable },//是否记录系统日志
  { "background", &tunable_background },//是否采用后台侦听进程方式运行 ??
  { "virtual_use_local_privs", &tunable_virtual_use_local_privs },//是否用虚拟用户映射到本地用户??
  { "session_support", &tunable_session_support },//是否记录utmp, wtmp, pam 连接资料???
  { "download_enable", &tunable_download_enable },//是否可以下载
  { "dirlist_enable", &tunable_dirlist_enable },//是否可以进行目录列表
  { "chmod_enable", &tunable_chmod_enable },//是否可以改变文件属性
  { "secure_email_list_enable", &tunable_secure_email_list_enable },
  { 0, 0 }
};
[/code:1]

这些是设置为数字之类的参数:
[code:1]
parseconf_uint_array[] =
{
  { "accept_timeout", &tunable_accept_timeout },//响应超时
  { "connect_timeout", &tunable_connect_timeout },//连接超时
  { "local_umask", &tunable_local_umask },//本地用户上传文件和目录的UMASK值
  { "anon_umask", &tunable_anon_umask },//匿名用户上传文件和目录的UMASK值
  { "ftp_data_port", &tunable_ftp_data_port },//FTP数据传输的端口
  { "idle_session_timeout", &tunable_idle_session_timeout },//发呆超时
  { "data_connection_timeout", &tunable_data_connection_timeout },//数据超时
  { "pasv_min_port", &tunable_pasv_min_port },//使用PASV时,允许最小的端口.
  { "pasv_max_port", &tunable_pasv_max_port },//使用PASV时,允许最大的端口.
  { "anon_max_rate", &tunable_anon_max_rate },//匿名用户的最大传输速度
  { "local_max_rate", &tunable_local_max_rate },//本地用户的最大传输速度
  { "listen_port", &tunable_listen_port },//侦听的端口.
  { "max_clients", &tunable_max_clients },//允许的最大用户连接数
  { "file_open_mode", &tunable_file_open_mode },//文件打开的模式,具体参数不清楚
  { "max_per_ip", &tunable_max_per_ip },//每个IP允许的最大连接数
  { "trans_chunk_size", &tunable_trans_chunk_size },
  { 0, 0 }
};
[/code:1]
下面这些是字符串的:
[code:1]
parseconf_str_array[] =
{
  { "secure_chroot_dir", &tunable_secure_chroot_dir },//指定一个空的数据夹且任何用户都不能有写入的权限
  { "ftp_username", &tunable_ftp_username },//FTP的用户名,与虚拟用户和匿名用户登录时有关系.
  { "chown_username", &tunable_chown_username },//改变文件属主的用户名
  { "xferlog_file", &tunable_xferlog_file },//记录传输日志的文件
  { "vsftpd_log_file", &tunable_vsftpd_log_file },//VSFTPD的日志文件
  { "message_file", &tunable_message_file },//欢迎信息的文件
  { "nopriv_user", &tunable_nopriv_user },
  { "ftpd_banner", &tunable_ftpd_banner },//一连接时显示的信息,默认是版本号
  { "banned_email_file", &tunable_banned_email_file },//
  { "chroot_list_file", &tunable_chroot_list_file },//
  { "pam_service_name", &tunable_pam_service_name },//用PAM认证的文件,默认为ftp
  { "guest_username", &tunable_guest_username },//定义guest的使用者名称,默认ftp
  { "userlist_file", &tunable_userlist_file },//用户列表文件名,默认是:/etc/vsftpd.user_list
  { "anon_root", &tunable_anon_root },//匿名用户的根目录
  { "local_root", &tunable_local_root },//本地用户登录的根目录
  { "banner_file", &tunable_banner_file },//显示服务器标志之类的文件名
  { "pasv_address", &tunable_pasv_address },//使用PASV方式时,用于通讯的IP地址,不知道是否可以到与本机不同的IP上面.
  { "listen_address", &tunable_listen_address },//侦听的IP地址,不知道是否可以侦听其它IP呢~~~应该是可以的吧,不过我没试过
  { "user_config_dir", &tunable_user_config_dir },//定义个别使用者设定文件所在的目录
  { "listen_address6", &tunable_listen_address6 },//侦听IPV6连接的IP地址,
  { "cmds_allowed", &tunable_cmds_allowed },//允许的命令??
  { "hide_file", &tunable_hide_file },//隐藏的文件或是以点开头的文件??
  { "deny_file", &tunable_deny_file },//不允许访问的文件??
  { "user_sub_token", &tunable_user_sub_token },
  { "email_password_file", &tunable_email_password_file },//匿名登录时禁止的邮箱列表文件,默认是:/etc/vsftpd.email_passwords
  { 0, 0 }
};
[/code:1]

我是以vsftpd-1.2.1然源代码做解释的~~我的英文很差,可能对很多参数的解释是凭自己的理解的,失误的地方,请大家不要见怪.

现在我用的是pureftpd-1.0.18,我编译了一下,开始的时候达到350K(加了MYSQL),后来改了一下配置选项,得出来的结果达到了260K左右~~~我试过用最小编译选项,可以达到只有50-60K左右的可执行文件~但我要用MYSQL认证,所以一加上MYSQL编译后,还是在260K左右~~.
但我编译VSFTPD时,怎么也就是一个70-80K的结果~~而且VSFTPD在我的服务器上面跑,怎么也就是一个进程占用700-800K左右的内存,而PUREFTPD却一个进程占用了我1200-1300K的内存~~真是受不了.

说实话,VSFTPD真是一个太优秀了的FTP服务器软件,只是如果不是因为在我的机器上用它时出现僵尸进程的话,我是不会去选择PURE_FTPD(VSFTPD的配置选项还多过PUREFTPD),尽管PUREFTPD也是一个非常好的东东.
发表于 2004-4-20 10:37:24 | 显示全部楼层
也就是说你的用户名是虚拟的,能不能把做法给说一下呢?
vsftp的用户用sql来虚拟我还没有做过,给个经验吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 20:40 , Processed in 0.044454 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表