首先,下载vsftpd-3.0.2源码包.
详细的安装过程如下:
[root@localhost vsftpd-3.0.2]# tar zxvf vsftpd-3.0.2.tar.gz
[root@localhost vsftpd-3.0.2]# cd vsftpd-3.0.2
[root@localhost vsftpd-3.0.2]# make
[root@localhost vsftpd-3.0.2]# ls -l vsftpd
-rwxr-xr-x. 1 root root 133684 10月 31 15:56 vsftpd
如果系统中没有nobody的用户,请增加nobody用户
[root@localhost vsftpd-3.0.2]# useradd nobody
useradd: user 'nobody' already exists
如果系统中没有/usr/share/empty/目录,请增加/usr/share/empty/目录
[root@localhost vsftpd-3.0.2]# mkdir /usr/share/empty/
mkdir: 无法创建目录"/usr/share/empty/": 文件已存在
建立ftp目录,并建立ftp用户
[root@localhost vsftpd-3.0.2]# ll /webserver/ftp/
ls: 无法访问/webserver/ftp/: 没有那个文件或目录
[root@localhost vsftpd-3.0.2]# mkdir /webserver/ftp/
[root@localhost vsftpd-3.0.2]# useradd -d /var/ftp ftp
useradd: user 'ftp' already exists
[root@localhost vsftpd-3.0.2]# chown root.root /webserver/ftp
[root@localhost vsftpd-3.0.2]# chmod og-w /webserver/ftp
然后进行编译安装:
[root@localhost vsftpd-3.0.2]# 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
install: 无法创建普通文件"/usr/local/man/man8/vsftpd.8": 没有那个文件或目录
install: 无法创建普通文件"/usr/local/man/man5/vsftpd.conf.5": 没有那个文件或目录
make: *** [install] 错误 1
发现有两个错误,我们需要修改Makefile文件,
[root@localhost vsftpd-3.0.2]# vi Makefile
将install的部分替换为以下内容:
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/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; \
elif [ -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; \
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
保存之后,重新运行make install,
[root@localhost vsftpd-3.0.2]# 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/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; \
elif [ -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; \
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
成功啦!复制配置文件到/etc目录中。
[root@localhost vsftpd-3.0.2]# cp vsftpd.conf /etc/
复制pam验证文件,允许本地用户登陆vsftpd。
[root@localhost vsftpd-3.0.2]# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
下面我们进行vsftpd的配置
允许本地用户登陆
[root@localhost vsftpd-3.0.2]# vi /etc/vsftpd.conf
我们需要取消vsftpd.conf以下三行的注释:
local_enable=YES
write_enable=YES
local_umask=022
locat_root=/webserver/ftp
#ftp登陆之后的目录路径
启动并测试vsftpd
[root@localhost vsftpd-3.0.2]# /usr/local/sbin/vsftpd &
[1] 5983
在客户端使用ftp工具测试本地用户登陆即可。
原文出自【风信网】,转载请保留原文链接:http://www.ithov.com/linux/130881.shtml