1、tar zvxf vsftpd-2.1.2.tar.gz
2、cd vsftpd-2.1.2
3、make
a. 在64bit系统下编译时会报错:
/lib/libpam.so.0: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [vsftpd] Error 1
解决方法:
将vsftpd-2.1.2/的vsf_findlibs.sh文件中的/lib,/usr/lib全部换成了/lib64,/usr/lib64再编译即可
7、make install
a. 报错
install: 无法创建一般文件‘/usr/local/man/man8/vsftpd.8’: 没有那个文件或目录
install: 无法创建一般文件‘/usr/local/man/man5/vsftpd.conf.5’: 没有那个文件或目录
解决方法:
增加man5和man8目录
VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。
[root@rhel4 root]# useradd nobody
useradd: user nobody exists
[root@rhel4 root]# mkdir /usr/share/empty/
mkdir: cannot create directory '/usr/share/empty': File exists
VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。
[root@rhel4 root]# mkdir /var/ftp/
[root@rhel4 root]# useradd -d /var/ftp ftp
接下来的操作对于ftp用户是否已经存在都是有用的。
[root@rhel4 root]# chown root.root /var/ftp
[root@rhel4 root]# chmod og-w /var/ftp
⑵编译VSFTPD
从官方站点下载到/root目录,执行以下命令:
[root@rhel4 root]# tar zxvf vsftpd-2.0.5.tar.gz
[root@rhel4 root]# cd vsftpd-2.0.5
[root@rhel4 vsftpd-2.0.5]# make
⑶安装编译好的VSFTPD
执行“make install”将编译好的二进制文件、手册等复制到相应目录。在RHL上,可能需要手动执行以下复制:
[root@rhel4 vsftpd-2.0.5]# cp vsftpd /usr/local/sbin/vsftpd
[root@rhel4 vsftpd-2.0.5]# cp vsftpd.conf.5 /usr/local/share/man/man5
[root@rhel4 vsftpd-2.0.5]# cp vsftpd.8 /usr/local/share/man/man8
此外,“make install”没有复制简单的配置文件,建议执行以下命令:
[root@rhel4 vsftpd-2.0.5]# cp vsftpd.conf /etc
⑷为本地用户设置PAM
如果允许本地用户登录VSFTPD,执行以下操作:
[root@rhel4 vsftpd-2.0.5]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
[root@www vsftpd-2.0.5]# /usr/local/sbin/vsftpd &
[1] 17146
[root@www vsftpd-2.0.5]# 500 OOPS: vsftpd: not configured for standalone, must be started from inetd
根据下面提示我添加listen=YES
vsftpd can run standalone or via an inetd (such as inetd or xinetd). You will
typically get more control running vsftpd from an inetd. But first we will run
it without, so we can check things are going well so far.
Edit /etc/vsftpd.conf, and add this line at the bottom:
listen=YES
这样就可以正常启动了