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

来源:互联网 发布:虚拟硬盘软件 编辑:程序博客网 时间:2024/04/28 02:44
参考: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=0account required /lib/security/pam_mysql.so user=root passwd=rootadmin host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0

5.建立虚拟用户
groupadd ftpduseradd -g ftpd ftpguestmkdir /home/vsftpdguest

6.设置vsftpd.conf配置文件
vim /etc/vsftpd.conf
在vsftpd.conf的末尾添加如下配置
local_enable=YESwrite_enable=YESguest_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_confvim /etc/vsftpd/vsftpd_user_conf/test1
在文件末尾添加如下配置信息:
local_enable=YESwrite_enable=YESlocal_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
原创粉丝点击