7.6 测试
$ lftp localhost -u tony,tonypass
lftp tony@localhost:~> ls
-rw-r--r-- 1 1001 1001 22 Aug 17 21:49 msg
lftp tony@localhost:/> exit
$ lftp localhost -u tony,tonyp
lftp tony@localhost:~> ls
ls: Login failed: 530 Login incorrect.8. 为VSFTPD配置虚拟用户(数据库方式)
8.1 安装MySQL数据库
# aptitude install mysql-server libpam-mysql当前MySQL数据库版本为5.0.24-1 libpam-mysql 0.6.2-1
tonybox:/var/log# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 5.0.22-Debian_4-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql>
mysql> create database vsftpd;
Query OK, 1 row affected (0.04 sec)
mysql> use vsftpd
Database changed
mysql> create table users(name char(20), passwd char(20));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into users values('tony',password('passtony'));
Query OK, 1 row affected (0.02 sec)
mysql> insert into users values('etony',password('passetony'));
Query OK, 1 row affected (0.01 sec)
mysql> grant select, insert on vsftpd.users to
vsftpduser@localhost identified by 'vsftpdpass';
Query OK, 0 rows affected (0.02 sec)8.2 创建用户
tonybox:/var/log# mysql -u vsftpduser -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 5.0.22-Debian_4-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use vsftpd
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from users;
+----+-------+------------------+
| id | name | passwd |
+----+-------+------------------+
| 1 | tony | 2351315b1bd1bd58 |
| 2 | etony | 59c0cde4781fb0be |
+----+-------+------------------+
2 rows in set (0.00 sec)
mysql>8.3 配置PAM文件
修改/etc/pam.d/vsftpd 内容如下:
auth required /lib/security/pam_mysql.so user=vsftpduser
passwd=vsftpdpass host=localhost db=vsftpd table=users
usercolumn=name passwdcolumn=passwd crypt=2
account required /lib/security/pam_mysql.so user=vsftpduser
passwd=vsftpdpass host=localhost db=vsftpd
table=users usercolumn=name passwdcolumn=passwd crypt=2crypt 的值
0: 在数据库中明文存储
1: 使用crypt()函数加密存储
2: 使用MySQL PASSWORD()函数加密存储8.4 其他配置
同 为VSFTPD配置虚拟用户(文本方式)
8.5 测试
tonybox:~# lftp localhost -u etony,passetony
lftp etony@localhost:~> ls
-rw-r--r-- 1 1001 1001 22 Aug 17 21:49 msg
lftp etony@localhost:/>注:
与mysql-server-5.0对应的libpam-mysql由于使用的PASSWORD()函数与服务器端使用的PASSWORD()不匹配, 故无法实现密码加密,仅可实现在数据库中明文存储ftp用户密码。 mysql-server-4.1 与 libpam-mysql( 0.5.0-6)可以实现在数据库中使用加密存储ftp用户密码
9. 关于日志
libpam-mysql 0.6.2-1模块仍然不是很完善 等待添加... ...
10. FAQ
http://www.vsftpdrocks.org/faq/ 中文版参阅:http://wolfg.iblog.cn/index.phpp=ViewArticle$articleId=50969
- Q) 为什么设置了chroot_local_user=YES后,符号链接(symlink)就不起作用了呢?
- A) 这是chroot()这种安全机制如何工作的结果。可选地,看一下硬连接(hard links),或者,你用的是"现代的"Linux,看一下强大的"mount --bind"命令。
- Q) 求助!我得到了"refusing to run with writable anonymous root"错误信息。
- A) vsftpd是不允许"危险(不安全)"的配置的。出现这个错误信息的原因通常是ftp的家(home)目录的属主权限不正确。 家(home)目录的属主不应该是ftp用户自己,而且ftp用户也不能有写的权限。解决的方法是: chown root ftp; chmod -w ftp
- Q) 求助!上传或其他"写"命令都报"500 Unknown command.".
- A) 默认情况下"写"命令(上传和建新目录等)都是被禁止的. 这是一种安全的方法. 要允许写命令需要在配置文件/etc/vsftpd.conf中加入write_enable=YES.
- Q) 求助!上传后的文件权限是-rw-------。
- A1) 根据上传用户是本地用户还是匿名用户,修改local_umask或anon_umask选项。例如,设置anon_umask=022指定匿名上传的文件权限为-rw-r--r--。注意,22前面的0不能少。
- A2) 也可以看看vsftpd.conf的man帮助中的新选项file_open_mode。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- FTP服务器 (5938篇文章)
- Linux集群技术 (8416篇文章)
- 体验Linux的音影世界 (8088篇文章)
- Linux驱动大全 (8891篇文章)
- Linux下的路由的配置与应用 (11888篇文章)
- Linux命令简介 (9952篇文章)
- Linux防火墙 (9769篇文章)
- Linux日志专题 (8542篇文章)
- Linux服务器的安全性能 (20541篇文章)
- 揭秘Linux内存管理 (8152篇文章)
- AS3中与服务器交互 (0次浏览)
- 对Exchange 2007的数据库进行脱机碎片整理 (0次浏览)
- 自摧毁邮件出现 服务器上不留痕迹 (0次浏览)
- Exchange安装因错误0x80070422失败 (0次浏览)
- Exchange 2007中如何授予邮箱的代理发送权限 (0次浏览)
- 分析刀片与机架式服务器的选择问题 (0次浏览)
- 如何增强Exchange服务器的安全性 (0次浏览)
- 微软Windows试水高端企业级服务器市场 (0次浏览)
- XML入门教程:服务器上的XML (0次浏览)
- Ubuntu用Apache2管理Subversion控制系统 (0次浏览)



