参考:http://www.wp1998.net/2012/785.html
1.安装vsfptd
2.创建验证数据库表。
3.安装安装 libpam-mysql
4.建立虚拟用户所需的PAM配置文件
5.建立虚拟用户
6.设置vsftpd.conf配置文件
7.为不同的虚拟用户设置不同的权限
在/etc/vsftpd/vsftpd_user_conf目录中为每个虚拟用户单独的配置文件,配置文件名与虚拟用户名相同。
8.建立用户test1登录时的目录
※若在登录的时候,出现" 500 OOPS: cannot change directory:/home/vsftpdguest/test1"这类的信息的话,
首先检查一下,/home/vsftpdguest/test1目录的所有者是否为虚拟用户在linux中的用户名,即:"ftpguest"。
※若在登录的时候,出现了"500 OOPS: vsftpd: refusing to run with writable root inside chroot()",
则需要去掉根目录的写权限。
1.安装vsfptd
apt-get install vsftpd
2.创建验证数据库表。
CREATE DATABASE vsftpd;
create table users(name char(16) binary,passwd char(16) binary);
INSERT INTO `users` (`name`, `passwd`) VALUES ('test1', '123456');
3.安装安装 libpam-mysql
apt-get install libpam-mysql
4.建立虚拟用户所需的PAM配置文件
vim /etc/pam.d/vsftpd.vu
在vsftpd.vu中添加如下信息
auth required /lib/security/pam_mysql.so user=root passwd=rootadmin host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=root passwd=rootadmin host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
5.建立虚拟用户
groupadd ftpd
useradd -g ftpd ftpguest
mkdir /home/vsftpdguest
6.设置vsftpd.conf配置文件
vim /etc/vsftpd.conf
在vsftpd.conf的末尾添加如下配置
local_enable=YES
write_enable=YES
guest_enable=YES #激活虚拟用户
guest_username=ftpguest #虚拟用户在linux中的用户名
pam_service_name=vsftpd.vu #虚拟用户数据文件
user_config_dir=/etc/vsftpd/vsftpd_user_conf #指定虚拟用户的配置文件的目录
virtual_use_local_privs=YES #设置为YES时,表示虚拟用户使用与本地用户相同的权限;为NO时,表示虚拟用户与匿名用户权限相同
7.为不同的虚拟用户设置不同的权限
在/etc/vsftpd/vsftpd_user_conf目录中为每个虚拟用户单独的配置文件,配置文件名与虚拟用户名相同。
mkdir /etc/vsftpd/vsftpd_user_conf
vim /etc/vsftpd/vsftpd_user_conf/test1
在文件末尾添加如下配置信息:
local_enable=YES
write_enable=YES
local_root=/home/vsftpdguest/test1 # 设置虚拟用户登录后的主目录
anon_world_readable_only=NO # 具有浏览FTP目录和下载权限
anon_upload_enable=YES # 具有上传文件权限
anon_mkdir_write_enable=YES # 具有建立和删除目录的权利
anon_other_write_enable=YES # 具有文件改名和删除文件的权利
8.建立用户test1登录时的目录
mkdir /home/vsftpdguest/test1
※若在登录的时候,出现" 500 OOPS: cannot change directory:/home/vsftpdguest/test1"这类的信息的话,
首先检查一下,/home/vsftpdguest/test1目录的所有者是否为虚拟用户在linux中的用户名,即:"ftpguest"。
※若在登录的时候,出现了"500 OOPS: vsftpd: refusing to run with writable root inside chroot()",
则需要去掉根目录的写权限。
chmod a-w /home/test3