每一个“丑得人神共愤”的泡妞高 手都有一颗坚忍的心,这证明了人类 在绝境中毫不妥协的求生精神,反正丑都丑了,索性放开手脚大干一场,这就叫“无产阶级失去的是锁链,得到的是全世界”
2013年(130)
分类: LINUX
2013-05-17 17:25:36
- vsftpd的基本安装配置参见《ubuntu搭建vsftpd服务器》
- sudo apt-get install libpam-mysql mysql-server mysql-client phpmyadmin
创建相应的数据库账户
创建相应的数据库
- create database vsftpd character set utf8;
创建相应的表
- grant create, update, select, insert, delete, alter, drop, index on vsftpd.* to 'vsftpd'@'localhost' identified by 'vsftpd';
- use vsftpd;
- create table accounts (
- id int not null auto_increment primary key,
- username varchar(128) not null unique,
- password varchar(128) not null
- );
使用如下内容替换/etc/pam.d/vsftpd文件的内容
- auth required pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=password crypt=2
- account required pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=password crypt=2
sudo useradd --home /home/ftp --gid nogroup -m --shell /bin/false vsftpd
启用本地登录
local_enable=YES
指定vsftpd使用的pam服务名
pam_service_name=vsftpd
(配置到这里就可以是用mysql里的账户登录了,不过数据库里面的账户需和系统账户对应)
将虚拟用户(mysql中)映射到vsftpd系统用户
guest_enable=YES
guest_username=vsftpd
指定虚拟用户登录后切换到的目录
user_sub_token=$USER
local_root=/home/ftp/$USER
使虚拟账户拥有本地账户的权限而不是默认的anonymous权限
virtual_use_local_privs=YES
(配置到这里就可以正常使用了,但是这没有使用chroot,任何用户可以遍历系统所有文件)
设置vsftpd执行权限
nopriv_user=vsftpd
启用本地登录的chroot
chroot_local_user=YES
数据库添加虚拟用户
insert into accounts (username, password) values('wuhuaxu', password('wuhuaxu'));
为虚拟用户添加主目录,因为chroot不允许主目录有写权限,目前较好的解决方法就是在主目录下创建一个用户具有全部权限的目录
sudo mkdir -p /home/ftp/wuhuaxu/upload
sudo chown -R vsftpd:nogroup /home/ftp/wuhuaxu
sudo chmod a-w /home/ftp/wuhuaxu
登录到ftp,进行各种测试