查看“Vsftpd实例”的源代码
来自Ubuntu中文
←
Vsftpd实例
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==目标== *只能下载的anonymous用户和能上传、下载的ftpuser用户 *登录都是进入/var/ftp目录,且无法离开该目录(被chroot) *ftpuser可以在 /var/ftp/pub目录中建立目录和上传文件 *匿名用户下载限速50kb/s,ftpuser限速500kb/s。 *可联接的最多客户数为100,每ip可联接的最多客户数为5 ==/etc/vsftpd/vsftpd.conf== <pre><nowiki> #接受匿名用户 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 </nowiki></pre> 下面是我的/etc/vsftpd.user_list <pre><nowiki> ftpuser anonymous </nowiki></pre> /etc/vsftpd.ftpusers可以使用系统自带的文件 /etc/vsftpd.chroot_list内容为空 ==账号== 接着建立系统用户ftpuser,将他加入ftp组并将/etc/passwd中他的记录的最后一个字段改成/sbin/nologin(禁止本地登录). 设置/var/ftp的所有者和所有组为root,权限为755 设置/var/ftp/pub的所有者为root,所有组为ftp,权限为775 如果需要使本地用户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,这样这条记录看起来类似这样: <pre><nowiki> LABEL=/ / ext3 defaults,usrquota 1 1 </nowiki></pre> 接着重启系统后输入下列命令: <pre><nowiki> quotacheck -acu #检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表 quotacheck -avu #生成每个启用了配额的文件系统的当前磁盘用量表 edquota ftpuser #为用户ftpuser设置磁盘配额 </nowiki></pre> 这时系统会在默认文本编辑器(vi)中打开配额文件,显示类似这样: <pre><nowiki> Disk quotas for user ftpuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda5 0 0 0 0 0 0 </nowiki></pre> 第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period)。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置.按你的需要修改后存盘推出. 要校验用户的配额是否被设置,使用以下命令: <pre><nowiki> quota testuser </nowiki></pre> 接着使用edquota -t来设置过渡期(grace period) 和另一个 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额: <pre><nowiki> 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 </nowiki></pre> 按你的需要修改后存盘退出 这样我们就成功的为ftpuser增添了磁盘配额.而一个比较完整的FTP站点也配置完成了 [[Category:服务器]]
返回
Vsftpd实例
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息