个人工具
登录
查看“Vsftpd和mysql配置”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“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> ==数据库管理== ==参考== [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配置
。