十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关Linux下vsftpd+MySQL虚拟用户有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
站在用户的角度思考问题,与客户深入沟通,找到吴忠网站设计与吴忠网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站制作、企业官网、英文网站、手机端网站、网站推广、空间域名、网站空间、企业邮箱。业务覆盖吴忠地区。
第一步:
安装vsftpd
apt-get install vsftpd (Debian就是爽啊!)
系统会自动生成一个配置文件和一个ftp用户供匿名用户使用,vsftpd使用PAM方式来验证虚拟用户,因为虚拟用户的信息保存在数据库中,所以我们还需要一个能够读取数据库内容的本地用户,而且还需要设置它的本地目录:
#mkdir /var/ftp
#useradd -d ftpguest /var/ftp
#chown ftpguest.nogroup /var/ftp
第二步:安装mysql
apt-get install mysql-server mysql-clent
建立数据库,并添加用户
#mysql -p mysql>create ftpu;
mysql>use ftpu;
mysql>create table user(name char(20) binary,passwd char(20) binary);
mysql>insert into user (name,passwd) values ('test1',password('1234567'));
mysql>insert into user (name,passwd) values ('test2',password('7654321'));
mysql>quit
让ftpguest能访问ftpu和表user:
#mysql -u root mysql -p mysql>grant select on ftpu.user to ftpguest@localhost identified by '123456';
mysql>quit
第三步:因为vsftpd是通过PAM验证,所以我们还需要一个mysql通过PAM验证的包,在Debian下它叫做libpam-mysql
apt-get install libpam-mysql
然后打开vsftpd的PAM验证:
#vi /etc/pam.d/vsftpd
将以前的内容注释掉,然后加入以下内容:
auth required pam_mysql.so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2
上面的内容应该能看明白吧,那个crypt=2表示经过mysql的password()机密后的东西!
第四步:修改vsftpd.conf文件
#vi /etc/vsftpd.conf
加入:
uest_enable=YES
guest_username=ftpguest
#表示ftpguest为vsftp的虚拟用户
virtual_use_local_privs=YES
#虚拟用户与本地用户有相同的权限
write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
#允许虚拟用户上传,修改和删除文件
chroot_local_user=YES
#虚拟用户只能访问自己的目录
anonymous_enable=NO
local_enable=YES
#关闭匿名用户访问,开启本地用户访问
第五步:
本来来到第四步已经完成了,可是后来一想,不对,那要是每次上传的东西都不同,到时把那个目录弄得乱七八糟的怎么管理啊,能不能为每个虚拟用户创建一个目录呢,比如说将music用户上传的文件放在放在~/music下,将doc用户上传的文件放在~/doc下呢?
能!当然能了,看看我怎么做?
首先在数据库中添加music和doc两个虚拟用户接下来:
#mkdir /etc/vsftpd_user_conf
#cd /etc/vsftpd_user_conf
#touch music
#echo "local_root=/home/username/music" > music
#touch doc
#echo "local_root=/home/username/doc" > doc
#mkdir /home/username/music
#chown ftpguest.nogroup /home/username/music
#chmod 600 /home/username/music
#chown ftpguest.nogroup /home/username/doc
#chmod 600 /home/username/doc
然后在vsftpd.conf中加入: user_config_dir=/etc/vsftpd_user_conf
关于“Linux下vsftpd+mysql虚拟用户有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。