Linux下vsftpd的简单应用(二)

来源:互联网 发布:手机淘宝邮箱注册链接 编辑:程序博客网 时间:2024/05/18 20:07

    vsftpd的配置(续)

    chown_uploads=YES,当匿名用户上传文件的时候,是否修改其所属用户。

    chown_username=whoever,指定匿名用户上传文件的所属用户,默认用户为root,不推荐使用root。

    这两个参数主要针对匿名用户上传文件的所属权问题,默认情况下匿名用户上传的所属用户为ftp,如果想要改变所属用户,就需要借助以上两个参数了,当然说明文件中特别强调指出,指定所属用户的时候不要指定root用户。

    chroot_local_user=YES,是否限制本地用户的目录上限为家目录,默认注释。

    chroot_list_enable = YES,是否启用chroot_list列表,默认注释。

    chroot_list_file=/etc/vsftpd/chroot_list,如果启用chroot_list,则在此处定义具体实现文件,每行一个用户,默认注释,该文件默认不存在,需要手动创建。

    chroot就是change root,也就是改变程序执行时所参考的根目录位置。当设定chroot_local_user=YES之后,本地用户的目录上限就限定为家目录。例如用户test在服务器上的家目录为/www/web/test/,那么test用户只能浏览test文件夹以及test文件夹下的文件和文件夹,不能浏览/www/web/和/www/文件夹下的内容。而下面两个参数就是用于设置特殊情况的,默认情况下,当设置chroot_local_user=YES,本地所有用户连接FTP的时候都会局限于家目录,当然你希望有些例外的用户可以不受限制,此时这两个参数就派上用场了。chroot_list_file的设定依赖于chroot_list_enable,只有当chroot_list_enable=YES的情况下,chroot_list_file才能生效。chroot_list_file用于定义例外用户,当chroot_local_user=YES的时候,如果存在于chroot_list_file中用户就可以不受到家目录的至于,可以访问到/www/web/和/www/这样的上级目录,反之,chroot_local_user=NO的时候,其他用户可以访问到上级目录,但是存在于chroot_list_file中的用户则局限于了家目录。

    userlist_enable = YES,是否启用user_list文件,默认启用。

    userlist_deny=YES,是否拒绝user_list文件中用户登陆,默认YES,也就是拒绝登陆。

    userlist_file=/etc/vsftpd/user_list,定义user_list文件,默认为/etc/vsftpd/user_list文件。

    默认情况下user_list中的用户都是被拒绝登陆的用户,这与ftpusers文件有这异曲同工之效,此时如果有用户存在于这两个任何一个文件中,都会被拒绝登陆。此时有人可能会想到,弄这样两个有这同样功能的文件是不是有些多余,而且只有在文件中的用户才会被拒绝登陆,那么如果服务器新创建的系统用户岂不是都能用于FTP登陆使用了,这样岂不是很不安全,也不符合我们的初衷呀。所以user_list还有另外一种使用方法,那就是userlist_deny=NO,此时user_list中的用户将被允许登陆,但是这里我们需要特别注意的是,当userlist_deny设置为NO的时候,当且仅当用户存在于user_list中才会被允许登陆,换句话说,如果是不存在于该文件中的用户,即使ftpusers中没有拒绝,也不能用于FTP登陆使用。这样一来安全性是不是就提高了,新建的系统用户除非手动加入user_list中,否则永远不会允许作为FTP用户登陆使用。还有一点需要注意的是,如果user_list和ftpusers中存在同一用户,那么ftpusers中的优先级更高,换句话说,只要存在于ftpusers中的用户永远不能用于FTP登陆使用。

    use_localtime=YES,是否使用本地时间,默认NO,也就是使用格林威治时间(GMT)。

    默认的vsftpd.conf中没有该选项,是小编在连接FTP的时候偶然发现的,连接FTP显示的时间居然跟当前时间相差了8个小时,不用说又是时区的事,于是乎查看了手册,发现了该参数,默认是NO,也就是使用GMT,我们需要把它设置为YES,这样就使用本地的时区了。

    pasv_enable=YES,是否启用被动模式,默认为YES。

    pasv_min_port=2222,被动模式下启用的最小端口号。

    pasv_max_port=2225,被动模式下启用的最大端口号。

    FTP连接的模式有两种,PORT(主动模式)和PASV(被动模式),关于主动模式和被动模式不做深入的讲解,回来会专门整理一篇关于FTP主动模式和被动模式的文章,这里之所以提到PASV相关参数,是因为默认很多FTP客户端软件都会采用被动模式进行连接,但是如果FTP服务器上开启了防火墙(iptables),FTP就不能顺利连接,需要设置对应的防火墙规则,这些参数就是需要用到了,权当现在是提前了解。

    vsftpd.conf中的参数当然不止这么多,还有很多其他的参数,小编认为不是很重要,所以就没有一一列举,如果有兴趣的朋友可以通过man vsftpd.conf命令查看更多的说明,说明文件中详细列举了vsftpd.conf的所有用到的参数以及其用法和默认值等等,关于user_list和ftpusers在讲述userlist相关参数的时候已经提到其用途,这里就不再独立出来讲解了。

    可能遇到的问题

    1.“500 OOPS :cannot change directory",使用ftp客户端软件链接的时候可能会出现该问题,小编出现该问题的原因是权限问题,但并非是ftp用户文件夹的权限,而是上层文件夹权限问题,上层文件夹对于其他用户没有开放x权限,导致其他用户无法进入该文件夹,所以也就进入不了它的下层文件夹了。有时候也可能是ftp用户文件夹的权限问题,可以仔细对照顶层文件夹到ftp用户文件夹之间各层文件夹的权限。

    2."530 Permission denied",遇到该错误原因可能有很多,我们一步一步排除,首先确认用于登陆的用户名和密码是否正确;其次,确认该用户名是否在ftpusers文件中,如果在,删除它;第三,看下vsftpd.conf中是否有userlist_deny参数,如果没有或者userlist_deny=YES,查看user_list中是否存在用户登陆的用户名,如果存在则删除它,如果userlist_deny=NO,那么查看下user_list是否存在该用户名,如果不存在,则添加上。ftpusers文件的作用只有一个,禁止文件列表中的用户用于FTP登陆,而user_list则不同,它会随着userlist_deny中的参数值的改变而改变,当等于YES的时候(默认),跟ftpusers文件的作用相同,禁止文件中的用户登陆,此时,当一个用户存在于两个文件中任何一个的时候,那么该用户则不能用于登陆。当等于NO的时候,user_list效果就改变了,仅允许存在在该文件中的用户可以用于FTP登陆,需要注意的是,此时该文件中的用户如果与ftpusers中的用户起冲突的话,那么以ftpusers为准,也就是说当用户存在于ftpusers中,不管userlist_deny=YES或者NO,该用户是否存在于user_list中,该用户都不能作为FTP用户登陆使用,ftpusers权限高于user_list。

    小知识

    r代表读权限,值为4,w代表写权限,值为2,x值为1,在文件中代表可执行权限,在文件夹中代表可以进入该文件夹,用户所能拥有的最高权限就是7(4+2+1)。之所以会出现777,是为了区别不同类型用户对文件或者文件夹的操作权限。第一个代表了该文件或者文件夹所属用户的权限,第二个代表了该文件或者文件夹所属用户组的权限,第三个代表了其他用户的权限。

0 0
原创粉丝点击