编译安装vsftpd-3.0.2
2024-09-28 14:45:05
编译安装vsftpd
首先下载源码包(我一般喜欢放在/home/test)
解压:tar -zxvf vsftpd-3.0.2.tar.gz
进入目录进行编译
cd vsftpd-3.0.2
编译之前记得gcc c++已经安装(低级错误)还有几个依赖yum一下呗
yum install libcap tcp_wrappers tcp_wrappers_devel
编译安装
make && make install
编译安装成功,启动文件在/usr/local/sbin
然后就到配置文件
新建目录
mkdir -p /etc/vsftpd
新建配置文件vsftpd.conf或者把源码的配置文件cp过来
touch /etc/vsftpd/vsftpd.conf
cp /home/test/vsftpd-3.0.2/vsftpd.conf /etc/vsftpd/
新建启动脚本(没有也可以,可以目录启动)把脚本扔进/etc/init.d/下
#!/bin/bash
#
# vsftpd This shell script takes care of starting and stopping
# standalone vsftpd.
#
# chkconfig: - 60 50
# description: Vsftpd is a ftp daemon, which is the program \
# that answers incoming ftp service requests.
# processname: vsftpd
# config: /etc/vsftpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x /usr/local/sbin/vsftpd ] || exit 0
RETVAL=0
prog="vsftpd"
start() {
# Start daemons.
if [ -d /etc ] ; then
for i in `ls /etc/vsftpd/vsftpd.conf`; do
site=`basename $i .conf`
echo -n $"Starting $prog for $site: "
/usr/local/sbin/vsftpd $i &
RETVAL=$?
[ $RETVAL -eq 0 ] && {
touch /var/lock/subsys/$prog
success $"$prog $site"
}
echo
done
else
RETVAL=1
fi
return $RETVAL
}
stop() {
# Stop daemons.
echo -n $"Shutting down $prog: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
RETVAL=$?
fi
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
exit $RETVAL
授予执行权
chmod +x vsftpd
加入服务
chkconfig --add vsftpd
开机启动
chkconfig vsftpd on
或者
chkconfig vsftpd 2345 on
下面是/etc/vsftpd/下的文件
chroot_list vsftpd.conf vsftpd.conf_bck vuser_conf vuser_passwd.db vuser_passwd.txt welcome.txt
首先配置vsftpd.conf
anonymous_enable=NO local_enable=YES local_root=/home/test chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list ascii_upload_enable=YES
ascii_download_enable=YES pam_service_name=vsftpd guest_enable=YES
guest_username=ftpadmin user_config_dir=/etc/vsftpd/vuser_conf
allow_writeable_chroot=YES banner_file=/etc/vsftpd/welcome.txt
接着chroot_list
test1
ftpadmin
vsftpd
然后welcome.txt
Hello, Welcome to vsftpd !!
跟着vuser_passwd.txt
test
test
test1
test1
test2
test2
这里还有一步, 生成db密码文件
db_load –T –t hash –f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
最后新建vuser_conf文件夹
mkdir vuser_conf
里面放的是用户限制
举个例子: test用户的
local_root=/opt/var/ftp1 #test用户能进入的目录
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
已经完成的差不多了, 最后就是开放21端口
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
保存这个规则
service iptables save
重启这个防火墙
service iptables restart
最后尝试连接:账号test密码test
验证一下test指定的目录下/opt/var/ftp1是否是这几个文件
接下来是外网连接
我使用的是ftp小黄
第一次连接的时候我的情况是这样的
然后我取消PASV验证
最后是这样的, 连接成功!
尝试下载文件
最新文章
- html5 canvas首屏自适应背景动画循环效果代码
- SQL Server 2008 R2——分组取前几名
- CGI、FastCGI和PHP-FPM关系图解
- .Net Core 自定义序列化格式
- android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
- ios浅谈关于nil和 NIL区别及相关问题(转)
- C++中类的内存空间大小(sizeof)分析
- echarts3 清空上一次加载的series数据
- 线段树 (区间查询最大 区间求和 区间加)带lazy
- [LeetCode] Valid Parenthesis String 验证括号字符串
- 【转】Elasticsearch学习
- 利用java反射机制实现读取excel表格中的数据
- Android 如何保持屏幕常亮
- javascript公有静态成员
- [dubbo] dubbo No provider available for the service
- MongoDB 投影
- 使用RMAN对数据文件进行恢复
- hbase_异常_05_End of File Exception between local host is: ";rayner/127.0.1.1";; destination host is: ";localhost";:9000;
- Java 空对象设计模式(Null Object Pattern) 讲解
- 如何高性能的给 UIImageView 加个圆角?
热门文章
- POJ_2019_Cornfields
- 1128 - Greatest Parent---LightOj(LCA+离线算法)
- 洛谷P3826 蔬菜 [NOI2017] 贪心
- Library Publication 时遇到 ";more than one library with package name"; 错误的解决方法
- oracle(一)复习起航
- Vue 过渡
- [py]django模板继承
- 置换检验(Permutation Test)学习[转载]
- [LeetCode] 292. Nim Game_Easy tag: Math
- 023-centos6.5上安装使用xtrabackup