当前位置: 主页 > 服务器技术 > Ftp服务器 > vsftp+mysql创建FTP服务器教程

vsftp+mysql创建FTP服务器教程

时间:2010-1-7来源:互联网 点击:


五、设置Mysql的PAM验证

这里我们要用到一个利用Mysql进行pam验证的开源项目(http://sourceforge.net/projects/pam-mysql/)。首先从网站下载它的程序包pam_myql-0.5.tar.gz,复制到/root目录中。在编译安装之前,要确保Mysql-devel的RPM包已经安装在你的机器上,如果没有请从RHL安装光盘中安装该包。然后,执行以下命令:
[root@hpe45 root]#tar xvzf pam_Mysql-0.5.tar.gz
[root@hpe45 root]#cd pam_Mysql
[root@hpe45 pam_Mysql]#make
[root@hpe45 pam_Mysql]#make install
make install这一步可能会出现错误,那只好手动将该目录下生成的pam_Mysql.o复制到/lib/security目录下。

接下来,我们要设置VSFTPd的PAM验证文件。打开/etc/pam.d/ftp文件,加入以下内容:
auth required pam_Mysql.o user=VSFTPdguest passwd=i52serial0 host=localhost db=VSFTPdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
account required pam_Mysql.o user=VSFTPdguest passwd=i52serial0 host=localhost db=VSFTPdvu table=users usercolumn=name passwdcolumn=passwd crypt=2

上面涉及到的参数,只要对应前面数据库的设置就可以明白它们的含义。这里需要说明的是crypt参数。crypt表示口令字段中口令的加密方式:crypt=0,口令以明文方式(不加密)保存在数据库中;crypt=1,口令使用UNIX系统的DES加密方式加密后保存在数据库中;crypt=2,口令经过Mysql的password()函数加密后保存。

六、进一步的虚拟用户设置

经过以上的步骤,虚拟用户就可以正常使用了。这里介绍进一步的虚拟用户设置。首先,介绍虚拟用户的权限设置。
VSFTPD-1.2.0新添了virtual_use_local_privs参数,当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限,这也就是VSFTPD-1.2.0之前版本对虚拟用户权限的处理方法。这两者种做法相比,后者更加严格一些,特别是在有写访问的情形下。默认情况下此参数是关闭的(NO)。

当virtual_use_local_privs=YES时,只需设置write_enable=YES,虚拟用户就可以就拥有写权限。而virtual_use_local_privs=NO时,对虚拟用户权限的设置就更多一些更严格一些。

控制虚拟用户浏览目录:如果让用户不能浏览目录,但仍可以对文件操作,那么需要执行以下二个步骤:一,配置文件中,anon_world_readable_only=YES。二,虚拟用户目录的权限改为只能由VSFTPdguest操作:
[root@hpe45 root]# chown VSFTPdguest.VSFTPdguest /home/VSFTPdguest
[root@hpe45 root]# chmod 700 /home/VSFTPdguest
允许虚拟用户上传文件:
write_enable=YES
anon_upload_enable=YES
允许虚拟用户修改文件名和删除文件:
anon_other_write_enable=YES
由于以上选项的设置同样会对匿名用户生效。如果不想匿名用户趁机拥有同样的权限,最好是禁止匿名用户登录。
其次,由于虚拟用户在系统中是VSFTPdguest身份,所以可以访问到系统的其他目录。为了更加安全,我们可以将虚拟用户限制在自家目录下。有两种做法:一,在配置文件中增加以下选项
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/VSFTPd.chroot_list
然后,在/etc/VSFTPd.chroot_list文件中加入虚拟用户名xiaotong和xiaowang。

第二种做法,在配置文件中修改chroot_local_user=YES。经过修改后,虚拟用户登录后其根目录就限制在/home/VSFTPdguest下,无法访问其他目录。

七、虚拟用户的个人目录

大家可以发现,无论是哪个虚拟用户,登录后所在的目录都是/home/VSFTPdguest,即都是guest_username用户的自家目录。下面,介绍如何为每个虚拟用户建立自家目录。首先,在主配置文件中加入以下选项:
user_config_dir=/etc/VSFTPd/VSFTPd_user_conf

然后,生成/etc/VSFTPd/VSFTPd_user_conf目录,并在该目录下建立与特定虚拟用户同名的文件:
[root@hpe45 root]# mkdir /etc/VSFTPd/VSFTPd_user_conf
[root@hpe45 root]# cd /etc/VSFTPd/VSFTPd_user_conf
[root@hpe45 VSFTPd_user_conf]# touch xiaowang

以上的操作为虚拟用户xiaowang建立了个人配置文件/etc/VSFTPd/VSFTPd_user_conf/xiaowang。接下来,在xiaowang的个人配置文件中将xiaowang的自家目录修改为/home/xiaowang,配置选项为:
local_root=/home/xiaowang
然后,新建xiaowang目录,并将权限设为VSFTPdguest:
[root@hpe45 VSFTPd_user_conf]# mkdir /home/xiaowang
[root@hpe45 VSFTPd_user_conf]# chown VSFTPdguest.VSFTPdguest ./xiaowang
[root@hpe45 VSFTPd_user_conf]# chmod 600 /home/xiaowang

经过以上设置,xiaowang登录VSFTPD后,用“pwd”指令就可以发现被自己被定位到自己的“/home/xiaowang”目录。

从文件系统层次来看,由于“/home/xiaowang”目录的权限是属于VSFTPdguest的,所以其他的虚拟用户同样也可以访问xiaowang的自家目录。解决这个问题也很简单,我们只需要让VSFTPD负责将虚拟用户限制在其自家目录,就可以避免虚拟用户的互相访问。具体做法参照前面第六步中所述,这里不再赘述。经过以上设置后,虚拟用户就可以拥有属于自己的目录了。

站长资讯网
.
分页: [1] [2]
TAG:
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言