查看“Vsftpd和mysql配置”的源代码
来自Ubuntu中文
←
Vsftpd和mysql配置
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
让Vsftpd的虚拟用户使用MySQL进行用户认证,可以方便的在一台机子上拥有上千个ftp账户,可以使用phpmyadmin来管理数据库 ==安装vsftpd、mysql和phpmyadmin== Vsftp没有内置的MySQL支持,所以我们必须使用PAM来认证: <pre>sudo apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin</pre> 随后会询问下列问题: <pre>New password for the MySQL "root" user: <-- yourrootsqlpassword Repeat password for the MySQL "root" user: <-- yourrootsqlpassword Web server to reconfigure automatically: <-- apache2...</pre> ==创建MySQL数据库== 现在我们创建名为''vsftpd''的数据库和名为''vsftpd''的MySQL账户(用于vsftpd进程连接vsftpd数据库): <pre>mysql -u root -p</pre> <pre>CREATE DATABASE vsftpd; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass'; FLUSH PRIVILEGES;</pre> ftpdpass换成你想要的密码,然后创建表: <pre>USE vsftpd;</pre> <pre>CREATE TABLE `accounts` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 30 ) NOT NULL , `pass` VARCHAR( 50 ) NOT NULL , UNIQUE ( `username` ) ) ENGINE = MYISAM ;</pre> <pre>quit;</pre> ==配置vsftpd== 首先创建一个''vsftpd''的用户(/home/vsftpd),属于nogroup。vsftpd进程运行在该用户下,虚拟用户的FTP目录会放置在/home/vsftpd下(如/home/vsftpd/user1, /home/vsftpd/user2) <pre>useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd</pre> 备份初始的/etc/vsftpd.conf文件,创建新的: <pre>cp /etc/vsftpd.conf /etc/vsftpd.conf_orig cat /dev/null > /etc/vsftpd.conf vi /etc/vsftpd.conf</pre> 内容如下: <pre>listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=vsftpd local_root=/home/vsftpd/$USER user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf</pre> <pre>mkdir /etc/vsftpd_user_conf</pre> <pre>cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig cat /dev/null > /etc/pam.d/vsftpd vi /etc/pam.d/vsftpd</pre> <pre>auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2</pre> 最后,我们重启vsftpd: <pre>sudo service vsftpd restart</pre> ==创建虚拟用户== <pre>mysql -u root -p</pre> <pre>USE vsftpd;</pre> 创建名为'''testuser''',密码为'''secret'''(会用MySQL的password函数加密): <pre>INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret')); quit;</pre> testuser的根目录应该是 /home/vsftpd/testuser,但麻烦的是vsftpd不会自动创建该目录的,所以我们得自个手动创建,同时确保它的属于vsftpd用户和nogroup用户组。 <pre>mkdir /home/vsftpd/testuser chown vsftpd:nogroup /home/vsftpd/testuser</pre> 最后试下能否正常登录 <pre>ftp localhost</pre> ==数据库管理== 用phpmyadmin管理mysql数据库最方便了。只要注意在设定密码时选择'''PASSWORD'''函数j就行。还有就是新增虚拟用户时别忘了手动新建虚拟用户的根目录。 ==参考== [http://www.howtoforge.com/virtual-hosting-with-vsftpd-and-mysql-on-debian-lenny Virtual Hosting With vsftpd And MySQL On Debian Lenny] [[Category:服务器]]
返回
Vsftpd和mysql配置
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息