Linux vsftpd编译安装和配置允许本地用户登录FTP
1、下载vsftpd源码
wget https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gz
2、编译vsftpd源码
64位的系统编译之前先要执行cp /lib64/libcap.so.1 /lib/libcap.so.1命令:
代码如下:
tar xzvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4
make
make install
3、配置vsftpd
代码如下:
cp vsftpd.conf /etc
cp RedHat/vsftpd.pam /etc/pam.d/ftp
sed i 's/anonymous_enable/#anonymous_enable=YES/g' /etc/vsftpd.conf
sed i 's/#local_enable=YES/local_enable=YES/g' /etc/vsftpd.conf
sed i 's/#write_enable=YES/write_enable=YES/g' /etc/vsftpd.conf
sed i 's/#local_umask=022/local_umask=022/g' /etc/vsftpd.conf
sed i 's/#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd.conf
4、启动vsftpd并设置开机启动
/usr/local/sbin/vsftpd &
sed -i '$a\/usr/local/sbin/vsftpd &' /etc/rc.d/rc.local
5、添加FTP用户(用户名:ftpuser ftp根目录/home/wwwroot/ftpuser)
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser
本地用户验证方式
(1)下载文件
wget http://jaist.dl.sourceforge.net/project/buluoos/0.1/src/vsftpd-2.2.2.tar.gz
tar zxvf vsftpd-2.2.2.tar.gz
cd vsftpd-2.2.2
(2)编辑程序代码。用tcp_wrappers验证方式,取消PAM验证。
sed -i 's/undef VSF_BUILD_TCPWRAPPERS/define VSF_BUILD_TCPWRAPPERS/g' builddefs.h
sed -i 's/define VSF_BUILD_PAM/undef VSF_BUILD_PAM/g' builddefs.h
(3)安装
make -j 8
(4)添加系统用户“nobody”(此用户可能已经存在)
useradd nobody
(5)创建目录“/usr/share/empty”(此目录可能已经存在)
mkdir /usr/share/empty/
(6)安装vsftpd配置文件,可执行程序。
install -m 644 vsftpd.conf /etc/vsftpd.conf
install -m 755 vsftpd /usr/local/sbin/vsftpd
install -m 644 vsftpd.8 /usr/share/man/man8
install -m 644 vsftpd.conf.5 /usr/share/man/man5
(7)编辑配置文件
cat >>/etc/vsftpd.conf<<EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
tcp_wrappers=YES
EOF
(8)启动vsftpd
/usr/local/sbin/vsftpd /etc/vsftpd.conf &
* 安装后使用系统用户登录,最好是使用运行WEB服务器的用户,这样可以避免上传之后再修改属主属组和权限。
* 安装文件下载地址不在本地,如果失效,可以自行搜索个下载地址,其他安装步骤不影响。