您的位置:首页 > 数据库 > SQL

ubuntu下vsftpd的配置(虚拟用户基于MySQL验证)

2013-01-31 16:45 1071 查看
参考:http://www.wp1998.net/2012/785.html

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: