博客统计信息

用户名:kns1024wh
文章数:50
评论数:24
访问量:84111
无忧币:98
博客积分:502
博客等级:3
注册日期:2008-07-21

我的技术圈(2)

更多>>
vsftp手工编译及配置虚拟用户过程
2009-02-09 15:31:16
  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人
了这篇文章
类别:网络服务技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2009-02-10 14:11:38
文章不错哦,博主再接再厉!

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: