以下的文章主要讲述的是Debian Linux下对vsftpd+MySQL虚拟用户的具体作法,我前两天在相关网站看见Debian Linux下对vsftpd+MySQL虚拟用户的资料,觉得挺好,就拿出来供大家分享。 今天闲来无事做了个ftp,原因很简单就是为了能在别处看到的好东西直接放到我
以下的文章主要讲述的是Debian Linux下对vsftpd+MySQL虚拟用户的具体作法,我前两天在相关网站看见Debian Linux下对vsftpd+MySQL虚拟用户的资料,觉得挺好,就拿出来供大家分享。
今天闲来无事做了个ftp,原因很简单就是为了能在别处看到的好东西直接放到我的机器上,嘿嘿!linux下选择ftp服务器还真是不容易,经过一阵思索后就选择了vsftpd,理由就是它号称是linux下最安全的ftp服务器还有还有好多的大型站点都用它来做服务器(这样用起来也比较有面子 :) )。
为了怕在我输入密码时被别人偷看到然后登入我机器乱搞,在加上我本来就讨厌系统有那么多的用户(其实也是像显示自己的手平),所以我决定采用虚拟用户,因为机器中装有MySQL(和PHP搭配之最佳组合),于是我就想将vsftpd+MySQL虚拟用户数据放在MySQL(和PHP搭配之最佳组合)中,好了,就侃到这里,下面进入正题!
第一步:
安装vsftpd
apt-get install vsftpd (Debian就是爽啊!)
系统会自动生成一个配置文件和一个ftp用户供匿名用户使用,vsftpd使用pam方式来验证虚拟用户,因为vsftpd+MySQL虚拟用户的信息保存在数据库中,所以我们还需要一个能够读取数据库内容的本地用户,而且还需要设置它的本地目录:
<ol class="dp-xml"> <li class="alt"><span><span>#mkdir /var/ftp </span></span></li> <li><span>#useradd -d ftpguest /var/ftp </span></li> <li class="alt"><span>#chown ftpguest.nogroup /var/ftp </span></li> </ol>
第二步:安装MySQL(和PHP搭配之最佳组合)
apt-get install MySQL(和PHP搭配之最佳组合)-server MySQL(和PHP搭配之最佳组合)-clent
建立数据库,并添加用户
<ol class="dp-xml"> <li class="alt">#MySQL<span>(和PHP搭配之最佳组合) -p </span>MySQL<span>(和PHP搭配之最佳组合)</span><span>>create ftpu; </span> </li> <li>MySQL<span>(和PHP搭配之最佳组合)</span><span class="tag">></span><span>use ftpu; </span> </li> <li class="alt">MySQL<span>(和PHP搭配之最佳组合)</span><span class="tag">></span><span>create table user(name char(20) binary,passwd char(20) binary); </span> </li> <li>MySQL<span>(和PHP搭配之最佳组合)</span><span class="tag">></span><span>insert into user (name,passwd) values ('test1',password('1234567')); </span> </li> <li class="alt">MySQL<span>(和PHP搭配之最佳组合)</span><span class="tag">></span><span>insert into user (name,passwd) values ('test2',password('7654321')); </span> </li> <li>MySQL<span>(和PHP搭配之最佳组合)</span><span class="tag">></span><span>quit </span> </li> <li class="alt"><span>让ftpguest能访问ftpu和表user: </span></li> <li> <span>#</span>MySQL<span>(和PHP搭配之最佳组合) -u root </span>MySQL<span>(和PHP搭配之最佳组合) <br>-p </span>MySQL<span>(和PHP搭配之最佳组合)</span><span class="tag">></span><span>grant select on ftpu.user to ftpguest@localhost identified by '123456'; </span> </li> </ol>
MySQL(和PHP搭配之最佳组合)>quit
第三步:因为vsftpd是通过PAM验证
所以我们还需要一个MySQL(和PHP搭配之最佳组合)通过PAM验证的包,在Debian下它叫做libpam-MySQL(和PHP搭配之最佳组合)
apt-get install libpam-MySQL(和PHP搭配之最佳组合)
然后打开vsftpd的pam验证:
<ol class="dp-xml"><li class="alt"><span><span>#vi /etc/pam.d/vsftpd </span></span></li></ol>
将以前的内容注释掉,然后加入以下内容:
auth required pam_MySQL(和PHP搭配之最佳组合).so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2
account required pam_MySQL(和PHP搭配之最佳组合).so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2
上面的内容应该能看明白吧,那个crypt=2表示经过MySQL(和PHP搭配之最佳组合)的password()机密后的东西!
第四步:修改vsftpd.conf文件
<ol class="dp-xml"><li class="alt"><span><span>#vi /etc/vsftpd.conf </span></span></li></ol>
加入:
<ol class="dp-xml"> <li class="alt"><span><span class="attribute">uest_enable</span><span>=</span><span class="attribute-value">yes</span><span> </span></span></li> <li> <span class="attribute">guest_username</span><span>=</span><span class="attribute-value">ftpguest</span><span> </span> </li> <li class="alt"><span>#表示ftpguest为vsftp的虚拟用户 </span></li> <li> <span class="attribute">virtual_use_local_privs</span><span>=</span><span class="attribute-value">yes</span><span> </span> </li> <li class="alt"><span> </span></li> </ol>
vsftpd+MySQL虚拟用户与本地用户有相同的权限
<ol class="dp-xml"> <li class="alt"><span><span class="attribute">write_enable</span><span>=</span><span class="attribute-value">yes</span><span> </span></span></li> <li> <span class="attribute">anon_upload_enable</span><span>=</span><span class="attribute-value">yes</span><span> </span> </li> <li class="alt"> <span class="attribute">anon_other_write_enable</span><span>=</span><span class="attribute-value">yes</span><span> </span> </li> </ol>
允许虚拟用户上传,修改和删除文件
<ol class="dp-xml"><li class="alt"><span><span class="attribute">chroot_local_user</span><span>=</span><span class="attribute-value">yes</span><span> </span></span></li></ol>
虚拟用户只能访问自己的目录
<ol class="dp-xml"> <li class="alt"><span><span class="attribute">anonymous_enable</span><span>=no </span></span></li> <li> <span class="attribute">local_enable</span><span>=</span><span class="attribute-value">yes</span><span> </span> </li> </ol>
关闭匿名用户访问,开启本地用户访问
第五步:
本来来到第四步已经完成了,可是后来一想,不对,那要是每次上传的东西都不同,到时把那个目录弄得乱七八糟的怎么管理啊,能不能为每个vsftpd+MySQL虚拟用户创建一个目录呢,比如说将music用户上传的文件放在放在~/music下,将doc用户上传的文件放在~/doc下呢?
能!当然能了,看看我怎么做?
首先在数据库中添加music和doc两个vsftpd+MySQL虚拟用户接下来:
<ol class="dp-xml"> <li class="alt"><span><span>#mkdir /etc/vsftpd_user_conf </span></span></li> <li><span>#cd /etc/vsftpd_user_conf </span></li> <li class="alt"><span>#touch music </span></li> <li> <span>#echo "</span><span class="attribute">local_root</span><span>=/home/username/music" </span><span class="tag">></span><span> music </span> </li> <li class="alt"><span>#touch doc </span></li> <li> <span>#echo "</span><span class="attribute">local_root</span><span>=/home/username/doc" </span><span class="tag">></span><span> doc </span> </li> <li class="alt"><span>#mkdir /home/username/music </span></li> <li><span>#chown ftpguest.nogroup /home/username/music </span></li> <li class="alt"><span>#chmod 600 /home/username/music </span></li> <li><span>#chown ftpguest.nogroup /home/username/doc </span></li> <li class="alt"><span>#chmod 600 /home/username/doc </span></li> </ol>
然后在vsftpd.conf中加入: user_config_dir=/etc/vsftpd_user_conf,大功告成,你明白了吗?

掌握添加MySQL用户的方法对于数据库管理员和开发者至关重要,因为它确保数据库的安全性和访问控制。1)使用CREATEUSER命令创建新用户,2)通过GRANT命令分配权限,3)使用FLUSHPRIVILEGES确保权限生效,4)定期审计和清理用户账户以维护性能和安全。

chosecharforfixed-lengthdata,varcharforvariable-lengthdata,andtextforlargetextfield.1)chariseffity forconsistent-lengthdatalikecodes.2)varcharsuitsvariable-lengthdatalikenames,ballancingflexibilitibility andperformance.3)

在MySQL中处理字符串数据类型和索引的最佳实践包括:1)选择合适的字符串类型,如CHAR用于固定长度,VARCHAR用于可变长度,TEXT用于大文本;2)谨慎索引,避免过度索引,针对常用查询创建索引;3)使用前缀索引和全文索引优化长字符串搜索;4)定期监控和优化索引,保持索引小巧高效。通过这些方法,可以在读取和写入性能之间取得平衡,提升数据库效率。

ToaddauserremotelytoMySQL,followthesesteps:1)ConnecttoMySQLasroot,2)Createanewuserwithremoteaccess,3)Grantnecessaryprivileges,and4)Flushprivileges.BecautiousofsecurityrisksbylimitingprivilegesandaccesstospecificIPs,ensuringstrongpasswords,andmonitori

tostorestringsefliceflicyInmySql,ChooSetherightDataTypeBasedyOrneOrneEds:1)USEcharforFixed-LengthStstringStringStringSlikeCountryCodes.2)UseVarcharforvariable-lengtthslikenames.3)USETEXTCONTENT.3)

选择MySQL的BLOB和TEXT数据类型时,BLOB适合存储二进制数据,TEXT适合存储文本数据。1)BLOB适用于图片、音频等二进制数据,2)TEXT适用于文章、评论等文本数据,选择时需考虑数据性质和性能优化。

No,youshouldnotusetherootuserinMySQLforyourproduct.Instead,createspecificuserswithlimitedprivilegestoenhancesecurityandperformance:1)Createanewuserwithastrongpassword,2)Grantonlynecessarypermissionstothisuser,3)Regularlyreviewandupdateuserpermissions

mySqlStringDatatatPessHouldBechoseBeadeDataCharacteristicsAndUsecases:1)USECHARFORFIXED LENGTHSTRINGSTRINGSLIKECOUNTRYCODES.2)USEDES.2)usevarcharforvariable-lengtthstringstringstringstringstringstringstringslikenames.3)usebinaryorvarrinaryorvarinarydatalbonydatalgebgeenfopical.4)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3汉化版
中文版,非常好用

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具