vsftp的虚拟账户,先建立.txt文件添加虚拟账户,然后通过系统的db_load指令来转换成.db文件,这样才可以被PAM模块识别.这一块经常有人会遇到问题,说无法找到这个指令,其实这个指令是由伯克利大学开发的一个数据库相关操作,很多别的地方也需要使用到它,除vsftp以外,还有sendmail也会使用到它.
下面我把他的简单配置发出来,这样就可以正常在转换db文件时候使用db_load指令了.
#使用vsftp建立虚拟账户时候,手工建立vuser.txt,然后使用db_load生成db数据库文件.
[root@centos ftp]# db_load
-bash: db_load: command not found
#检查系统db包
[root@centos ftp]# rpm -qa db4
db4-4.3.29-9.fc6
#需要进入光盘选择db工具安装
[root@centos ftp]# ls -lh /mnt/cdrom/CentOS/ |grep db4
-rw-r--r-- 2 root root 918K 2007-11-19 db4-4.3.29-9.fc6.i386.rpm
-rw-r--r-- 2 root root 2.0M 2007-11-19 db4-devel-4.3.29-9.fc6.i386.rpm
-rw-r--r-- 2 root root 1.8M 2007-11-19 db4-java-4.3.29-9.fc6.i386.rpm
-rw-r--r-- 2 root root 1.1M 2007-11-19 db4-tcl-4.3.29-9.fc6.i386.rpm
-rw-r--r-- 2 root root 119K 2007-11-19 db4-utils-4.3.29-9.fc6.i386.rpm
#将没有安装的四个db包安装即可使用指令.
[root@centos src]# db_
db_archive db_dump db_printlog db_upgrade
db_checkpoint db_dump185 db_recover db_verify
db_deadlock db_load db_stat
vsftp访问FTP用户根目录以外的数据的实现方法:
在Linux里,把自动备份放到另外的目录。如:/home/user1/databackup
但同时希望在不改动FTP权限及用户根目录的的基础上,仍然可以通过FTP下载这些备份文件。
假设FTP用户为user2,其FTP根目录是/home/user2。
首先想到的是用ln建立连接,但发现以下问题:
第一,硬链接只支持文件链接,不支持目录链接,而且要求文件在同一个文件系统。
第二,vsftp默认配置不支持ln连接。(建了软连接以后,从FTP目录的软连接打不开文件夹,或许就算打开进去了,退回上级目录也是个问题。)
换个思路,使用mount --bind把目录加载过来就可以了:
在/home/user2下建一个databackup文件夹,即:/home/user2/databackup,
然后执行下面的命令把/home/user1/databackup挂载到/home/user2/databackup即可。
mount --bind /home/user1/databackup /home/user2/databackup
以后要解除挂载时,执行如下命令把/home/user2/databackup目录的挂载卸掉即可。
umount /home/user2/databackup
阅读(1808) | 评论(0) | 转发(0) |