当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : vsftpd虚拟用户无法登录 求助
帖子发表于 : 2009-09-06 17:01 

注册: 2008-04-10 21:45
帖子: 46
送出感谢: 0 次
接收感谢: 0 次
我用的系统为ubuntu server 9.04,同样也在RHCL4做过同样的实验,如果用txt做数据库就可以正常使用虚拟用户,但用mysql做数据库就不可以登录虚拟用户。我已经做了无数次了这个实验,但还是出现同样的问题,在命令行上登录显示:“530 Login incorrect.”,但上网找到的方法不行,例如改/etc/pam.d/vsftpd中的“crypt=0”为“crypt=1,2,3,4”.如下是我的配置过程。希望大家可以帮我打出错误。
ftp 根目录: /home/ftpsite
匿名帐号 anonymous : 只允许下载,根目录是 /home/ftpsite/anonymous
帐号 movie : 有密码 movie,只允许下载,根目录是 /home/ftpsite/movie
帐号 comet : 有密码 123456,相当于管理员,允许上传和下载,根目录是 /home/ftpsite
1.安装 vsftpd ,mysql-server
sudo apt-get install vsftpd mysql-server
安装的过程中需要给 mysql 设置密码。
2.编辑 /etc/vsftpd.conf
sudo vi /etc/vsftpd.conf
listen=YES
listen_port=21
tcp_wrappers=YES
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd_user_config
pasv_min_port=10000
pasv_max_port=10100
use_localtime=YES
anonymous_enable=YES
max_clients=10
max_per_ip=5
local_enable=YES
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
ftpd_banner=Welcome to ShareKernel.Com FTP service.
chroot_local_user=YES
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
编辑好之后可以使用 grep -v "^#" /etc/vsftpd.conf 确认^_^
选项说明参考:man vsftpd.conf
或:http://blog.3gcomet.com/docs/vsftpd-man-zh.html
3.添加虚拟用户要用的帐号 virtual
sudo useradd  -d /home/ftpsite -s /bin/false virtual
# 给 virtual 设置密码
passwd virtual
# 修改 virtual 对 /home/ftpsite 的权限
chown -R virtual.virtual /home/ftpsite
chmod -R 700 /home/ftpsite
4.修改自动创建的用户 ftp 的权限
# 把 ftp 加到 virtual 组
useradd -g virtual ftp
# 把 ftp 的根目录改成 /home/ftpsite/anonymous
usermod -d /home/ftpsite/anonymous ftp
# 把 /home/ftpsite/anonymous 的权限增加执行权限,这是由于更改了根目录,为了避免在使用匿名用户打开 ftp 服务器时提示不能打开该文件夹
chmod 710 /home/ftpsite/anonymous
ls -l /home/ftpsite/anonymous
drwx--x---  3 virtual virtual    15 2008-10-15 01:08 anonymous
5.创建数据库
mysql -u root -p
create database vsftpd;
use vsftpd
create table users(name char(20), passwd char(20));
insert into users values('movie',password('movie'));
insert into users values('comet',password('123456'));
grant select, insert on vsftpd.users to virtual@localhost identified by 'virtual';
# 最后一行语句是添加 virtual 用户,该用户对 vsftpd 数据库 users 表有查询,插入权限。
6.修改 vsftpd 的 pam 认证
sudo vi /etc/pam.d/vsftpd
# 下面是两行,user 和 passwd 是刚才添加的用户和密码,db 是用户数据库,有 users 表,有 name,passwd 两列,passwd 密码列用的加密方式为0
auth required /lib/security/pam_mysql.so user=virtual passwd=virtual host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=virtual passwd=virtual host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
crypt 的值说明:0: 在数据库中明文存储;1: 使用crypt()函数加密存储;2: 使用MySQL PASSWORD()函数加密存储;3:表示使用md5的散列方式
注意:与mysql-server-5.0对应的libpam-mysql由于使用的PASSWORD()函数与服务器端使用的PASSWORD()不匹配, 故无法实现密码加密,仅可实现在数据库中明文存储ftp用户密码。 mysql-server-4.1 与 libpam-mysql( 0.5.0-6)可以实现在数据库中使用加密存储ftp用户密码
7.在 /etc/vsftpd_user_config 中建立用户个人配置文件,文件名为用户名
anonymous :
local_root=/home/ftpsite/anonymous
anon_world_readable_only=YES
movie :
local_root=/home/ftpsite/movie
anon_world_readable_only=YES
comet :
local_root=/home/ftpsite
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
8.重启并测试
sudo /etc/init.d/vsftpd restart


页首
 用户资料  
 
2 楼 
 文章标题 : Re: vsftpd虚拟用户无法登录 求助
帖子发表于 : 2009-12-02 0:53 
头像

注册: 2006-11-08 13:02
帖子: 243
送出感谢: 1
接收感谢: 0 次
要注意的 /etc/pam.d/vsftpd 就只有2行,没其他内容。


_________________
简简单单的生活,自自然然的我~www.3gcomet.com


页首
 用户资料  
 
3 楼 
 文章标题 : Re: vsftpd虚拟用户无法登录 求助
帖子发表于 : 2010-02-14 20:32 
头像

注册: 2010-01-23 23:38
帖子: 163
送出感谢: 0 次
接收感谢: 0 次
:em20 没看出问题来,楼主你现在解决问题了吗?解决的话最好能出来更新下哦


_________________
Burst.net VPS、独立主机代购


页首
 用户资料  
 
4 楼 
 文章标题 : Re: vsftpd虚拟用户无法登录 求助
帖子发表于 : 2010-04-20 14:28 
头像

注册: 2006-11-08 13:02
帖子: 243
送出感谢: 1
接收感谢: 0 次
http://www.3gcomet.com/article.asp?id=365

之前是没加密,但是密码那里多了 password 函数的调用。修改了一下,再验证了一次,可以成功的。


_________________
简简单单的生活,自自然然的我~www.3gcomet.com


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译