vsftp手工编译及配置虚拟用户过程

  1. 下载最新版本

wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.1.0pre4.tar.gz

(下载一个相对稳定版本)

wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.7.tar.gz

2.首先阅读源码目录中的INSTALL文件

执行make编译是遇到问题

/lib/libpam.so.0: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [vsftpd] Error 1

参考http://www.chinaunix.net/jh/15/760675.html 描述

also hit this - the problem is that the lib finding script vsf_findlibs.sh returns

e.g. /lib/libpam.so.0; however if you're on a x86_64 machine, for example, you need /lib64/libpam.so.0. Fixing this up sorted things out for me.

修改vi vsf_findlibs.sh内容为 locate_library /lib64/libpam.so.0 && echo "/lib/libpam.so.0";

/lib/libcap.so.1: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [vsftpd] Error 1

同样修改vi vsf_findlibs.sh内容为

# Look for libcap (capabilities)
if locate_library /lib64/libcap.so.1; then
  echo "/lib64/libcap.so.1";
else
  locate_library /usr/lib64/libcap.so && echo "-lcap";
  locate_library /lib64/libcap.so && echo "-lcap";
fi
再次执行make

3.编译结束执行程序的初步配置,便于后续的执行

[root@gateway vsftpd-2.1.0]# ls -l vsftp
vsftpd         vsftpd.8       vsftpd.conf

vsftpd needs the (empty) directory /usr/share/empty in the default
configuration. Add this directory in case it does not already exist. e.g.:

[root@localhost root]# mkdir /usr/share/empty/
mkdir: cannot create directory `/usr/share/empty': File exists

# make install
if [ -x /usr/local/sbin ]; then \
                install -m 755 vsftpd /usr/local/sbin/vsftpd; \
        else \
                install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
                install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
                install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
        elif [ -x /usr/share/man ]; then \
                install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
                install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
        else \
                install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
                install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
if [ -x /etc/xinetd.d ]; then \
                install -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi


cp vsftpd /usr/local/sbin/
cp vsftpd.conf.5 /usr/local/share/man/man5
cp vsftpd.8 /usr/local/share/man/man8

4.建立虚拟用户

需要使用db_load,需要安装的软件包

cd Server ;ls db4*.x86_64.rpm

# cat ftpuser.txt
aaa
aaapass
bbb
bbbpass
ccc
cccpass
test
601

db_load -T -t hash -f /etc/ftpuser.txt /etc/ftpuser.db
chmod 600 /etc/ftpuser.db

vi /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/ftpuser
account required pam_userdb.so db=/etc/ftpuser

# cat /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd



mkdir /var/run/vsftpd

[root@gateway vsftpd_user_conf]# cat test
local_root=/cdma/test
write_enable=YES
local_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=yes

chmod -R o+wx test

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值