Warning: Missing argument 2 for wp_widget() in /www/users/haoxm.net/wp-includes/widgets.php on line 76
孤独小客 » Blog Archive » linux下安装vsftpd

linux下安装vsftpd

[root@xm06 ~]# tar zxvf vsftpd-2.0.6.tar.gz (按说明文件来装)
[root@xm06 vsftpd-2.0.6]# cd /var/
[root@xm06 var]# ls
cache db games local log mail opt run tmp
cvs empty lib lock lost+found nis preserve spool yp

从这一步开始
[root@xm06 var]# mkdir ftp
[root@xm06 var]# useradd -d /var/ftp -M ftp
useradd: user ftp exists
[root@xm06 var]# chmod og-w /var/ftp
到这一步结束,是匿名用户才用的到

# vi builddefs.h
(编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL#endif /* VSF_BUILDDEFS_H */
将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL)

5.#make //直接在vsftpd-2.0.6里用make编译

在make时出错如下:
make: *** [sysdeputil.o] Error 1
解决方法:
这几个包可能不是REDHAT的,这个问题的原因是sysdeputil.c 文件出错,真正解决方法是给其打补丁:
# patch sysdeputil.c attachment.bin
# make
attachment.bin 的位置在:
http://linuxfromscratch.org/pipe … 9f56/attachment.bin
注明: 当前目录为vsftp**/

attachment.bin一定要放在sysdeputil.c同一个目录,而sysdeputil.c刚好是在vsftp-2.0.6目录,所以

这个attachment.bin是要放在vsftp-2.0.6目录下的才行,执行完成功显示如下:
[root@xm06 vsftpd-2.0.6]# patch sysdeputil.c attachment.bin
patching file sysdeputil.c
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 155 with fuzz 1.

[root@xm06 vsftpd-2.0.6]# make
gcc -c sysdeputil.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o

ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o

banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o

standalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o ssl.o

sysutil.o sysdeputil.o -Wl,-s `./vsf_findlibs.sh`

[root@xm06 vsftpd-2.0.6]# 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

[root@xm06 etc]# cd /root/vsftpd-2.0.6
[root@xm06 vsftpd-2.0.6]# cp vsftp
vsftpd vsftpd.8 vsftpd.conf vsftpd.conf.5 vsftpver.h
[root@xm06 vsftpd-2.0.6]# cp vsftpd.conf /etc
[root@xm06 vsftpd-2.0.6]# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
[root@xm06 vsftpd-2.0.6]# userdel ftp
[root@xm06 vsftpd-2.0.6]# useradd -d /var/ftp -s /sbin/nologin -M ftp
[root@xm06 vsftpd-2.0.6]# useradd -s /sbin/nologin -d /data/wwwroot/ haoxm.net
[root@xm06 vsftpd-2.0.6]# passwd haoxm.net
Changing password for user haoxm.net.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully

[root@xm06 vsftpd-2.0.6]# /usr/local/sbin/vsftpd &
[1] 17888
[root@xm06 vsftpd-2.0.6]# 500 OOPS: vsftpd: not configured for standalone, must be started

from inetd

[1]+ Exit 1 /usr/local/sbin/vsftpd
启动出错

网上搜索如下:
vsftpd: not configured for standalone, must be started from inetd
因为xinetd已经启动了vsftpd,而你的vsftpd设置成了stardalone模式
如果要用inetd启动,那用如下方面启动:
首先copy你的安装文件里的vsftpd.xinetd到/etc/xinetd.d/下
cp vsftpd.xinetd /etc/xinetd.d/vsftpd
/etc/rc.d/init.d/xinetd restart
用inetd模式启动

如果你想用standalone启动,必须做如下更改
编辑/etc/xinetd.d/vsftpd文件,把disable=no改成YES
编辑/etc/vsftpd.conf文件在顶部加listen=YES
停止xinetd服务,
#service xinetd stop ,
再启动vsftpd:
/usr/local/sbin/vsftpd &

所以我就把/etc/vsftpd.conf里面添加listen=YES

[root@xm06 data]# /usr/local/sbin/vsftpd &
standalone启动方式
[root@xm06 data]# ps -aux|grep vsftpd
[root@xm06 data]#kill -9 ID号

vsftpd.conf里面
pam_service_name=ftp
local_enable=YES
listen=YES
pasv_enable=YES
pasv_max_port=9090
pasv_min_port=9000
ftpd_banner=220 wellpie FTP Server
write_enable=YES
local_umask=022

chroot_list_enable=YES
chroot_local_user=NO
chroot_list_file=/etc/vsftpd.chroot_list (这个文件里面有一个用户haoxm.net,用来限制跳到其他目

录)

如果本地用户只能下载,不能上传或删除的话,请检查这个FTP用户是否拥有这个上传目录的组,如FTP

用户是haoxm.net,FTP要上传到资料到/data/wwwroot/haoxm.net,那haoxm.net这个用户是否有

对/data/wwwroot/haoxm.net这个目录写入、修改的权限,如果没有,就把haoxm.net用户添加到那目录

所属的组,如果那目录是属于apache用户和apache组,那把haoxm.net添加到apache组里面就可以。否是

属于apache的组

Leave a comment

Your comment