mirror of
https://github.com/monlor/MIXBOX-ARCHIVE.git
synced 2026-03-15 01:42:24 +00:00
2018-12-31
This commit is contained in:
BIN
apps/vsftpd/bin/vsftpd_linux_arm
Normal file
BIN
apps/vsftpd/bin/vsftpd_linux_arm
Normal file
Binary file not shown.
BIN
apps/vsftpd/bin/vsftpd_linux_mips
Normal file
BIN
apps/vsftpd/bin/vsftpd_linux_mips
Normal file
Binary file not shown.
68
apps/vsftpd/config/mixbox.conf
Normal file
68
apps/vsftpd/config/mixbox.conf
Normal file
@@ -0,0 +1,68 @@
|
||||
#------------------【VsFtpd】-------------------
|
||||
vsftpdAdd() {
|
||||
read -p "请输入${appname}用户名:" user
|
||||
[ "$user" = "root" ] && echo "不能添加root用户!" && return 1
|
||||
read -p "请输入${appname}密码:" passwd
|
||||
read -p "请输入$user访问目录:" path
|
||||
if [ ! -z $user -a ! -z $passwd -a ! -z $path ]; then
|
||||
sed -i "/$user/d" $FTPUSER
|
||||
echo "$user,$passwd,$path" >> $FTPUSER
|
||||
fi
|
||||
read -p "添加完成,再添加一个?[1/0] " res
|
||||
if checkread $res; then
|
||||
[ "$res" == '1' ] && vsftpdAdd
|
||||
fi
|
||||
}
|
||||
|
||||
vsftpdDel() {
|
||||
userlist=$(cat $FTPUSER | cut -d, -f1)
|
||||
echo "${appname}用户[`echo $userlist`]"
|
||||
read -p "请输入要删除的用户名:" res
|
||||
[ ! -z "$res" ] && sed -i "/^$res,/d" $FTPUSER
|
||||
read -p "删除完成,继续删除?[1/0] " res
|
||||
if checkread $res; then
|
||||
[ "$res" == '1' ] && vsftpdDel
|
||||
fi
|
||||
}
|
||||
|
||||
vsftpd() {
|
||||
eval `mbdb export vsftpd`
|
||||
source /etc/mixbox/bin/base
|
||||
FTPUSER=${mbroot}/apps/vsftpd/config/ftpuser.conf
|
||||
[ ! -f $FTPUSER ] && touch $FTPUSER
|
||||
echo "********* $service ***********"
|
||||
echo "[${appinfo}]"
|
||||
readsh "启动${appname}服务[1/0] " "enable" "1"
|
||||
if [ "$enable" == '1' ]; then
|
||||
read -p "是否开启匿名用户访问?[1/0] " res
|
||||
checkread $res && mbdb set $appname.main.anon_enable="$res"
|
||||
if [ "$res" == '1' ]; then
|
||||
anon_root=$(mbdb get ${appname}.main.anon_root)
|
||||
[ -z $anon_root ] && anon_root="空"
|
||||
read -p "更改匿名用户访问目录($anon_root)?[1/0] " res
|
||||
if [ "$res" == '1' ]; then
|
||||
read -p "请输入匿名用户访问目录:" res
|
||||
mbdb set $appname.main.anon_root="$res"
|
||||
fi
|
||||
fi
|
||||
mbdb set $appname.main.ftp_port="21"
|
||||
userlist=$(cat $FTPUSER | cut -d, -f1)
|
||||
[ -z $userlist ] && userlist="空"
|
||||
echo "${appname}用户[`echo $userlist`]"
|
||||
read -p "添加${appname}用户?[1/0] " res
|
||||
[ "$res" == '1' ] && vsftpdAdd
|
||||
read -p "删除${appname}用户?[1/0] " res
|
||||
[ "$res" == '1' ] && vsftpdDel
|
||||
if [ "$(mbdb get entware.main.enable)" = '1' ]; then
|
||||
readsh "使用entware安装插件程序[1/0]" "entware" "1"
|
||||
[ "$entware" = '1' ] && mv ${mbroot}/apps/${appname}/bin/${appname} ${mbroot}/apps/${appname}/bin/${appname}.bak &> /dev/null
|
||||
fi
|
||||
readsh "请输入${appname}外网访问配置[1/0]" "openport" "1"
|
||||
|
||||
${mbroot}/apps/${appname}/scripts/${appname}.sh restart
|
||||
else
|
||||
${mbroot}/apps/${appname}/scripts/${appname}.sh stop
|
||||
fi
|
||||
|
||||
}
|
||||
#------------------【VsFtpd】-------------------
|
||||
1
apps/vsftpd/config/version.txt
Normal file
1
apps/vsftpd/config/version.txt
Normal file
@@ -0,0 +1 @@
|
||||
1.1.6
|
||||
18
apps/vsftpd/config/vsftpd.conf
Normal file
18
apps/vsftpd/config/vsftpd.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
background=YES
|
||||
listen=YES
|
||||
#anon_other_write_enable=YES
|
||||
anon_mkdir_write_enable=YES
|
||||
anon_upload_enable=YES
|
||||
local_enable=YES
|
||||
local_umask=022
|
||||
anon_umask=022
|
||||
check_shell=NO
|
||||
allow_writeable_chroot=YES
|
||||
session_support=NO
|
||||
userlist_file=/etc/vsftpd.users
|
||||
xferlog_file=/etc/mixbox/var/log/vsftpd.log
|
||||
deny_file={*.scr}
|
||||
write_enable=YES
|
||||
chroot_local_user=YES
|
||||
xferlog_enable=YES
|
||||
#mixbox-vsftpd
|
||||
8
apps/vsftpd/config/vsftpd.uci
Normal file
8
apps/vsftpd/config/vsftpd.uci
Normal file
@@ -0,0 +1,8 @@
|
||||
service="VsFtpd"
|
||||
appname="vsftpd"
|
||||
needver="0.0.1"
|
||||
supports="linux_arm,linux_mips,linux_x86_64"
|
||||
backupfiles="config/ftpuser.conf"
|
||||
appinfo="快速搭建Ftp服务器,局域网文件共享"
|
||||
newinfo=""
|
||||
version="0.0.2"
|
||||
144
apps/vsftpd/scripts/vsftpd.sh
Normal file
144
apps/vsftpd/scripts/vsftpd.sh
Normal file
@@ -0,0 +1,144 @@
|
||||
#!/bin/sh
|
||||
source /etc/mixbox/bin/base
|
||||
eval `mbdb export vsftpd`
|
||||
|
||||
port=21
|
||||
FTPUSER=${mbroot}/apps/vsftpd/config/ftpuser.conf
|
||||
binname="${appname} ${appname}-ext"
|
||||
|
||||
add(){
|
||||
sed -i "/$1/"d /etc/passwd
|
||||
sed -i "/$1/"d /etc/shadow
|
||||
#if [ "$4" == '0' ]; then
|
||||
sshlogin=/bin/false;
|
||||
#else
|
||||
# sshlogin=/bin/ash;
|
||||
#fi
|
||||
if [ ! -d "$3" ]; then
|
||||
mkdir -p $3
|
||||
fi
|
||||
echo "$1:*:10086:10086:$1:$3:$sshlogin" >> /etc/passwd
|
||||
echo "$1:*:0:0:99999:7:::" >> /etc/shadow
|
||||
echo -e "$2\n$2" | passwd $1 > /dev/null 2>&1
|
||||
|
||||
}
|
||||
del(){
|
||||
sed -i "/^$1/"d /etc/passwd
|
||||
sed -i "/^$1/"d /etc/shadow
|
||||
sed -i "/^$1/"d /etc/vsftpd.users &> /dev/null
|
||||
}
|
||||
|
||||
# init_mount() {
|
||||
# [ ! -f "${mbroot}/apps/${appname}/config/passwd" ] && cp -rf /etc/passwd ${mbroot}/apps/${appname}/config/passwd
|
||||
# [ ! -f "${mbroot}/apps/${appname}/config/shadow" ] && cp -rf /etc/shadow ${mbroot}/apps/${appname}/config/shadow
|
||||
# umountsh /etc/passwd
|
||||
# umountsh /etc/shadow
|
||||
# mount --bind ${mbroot}/apps/${appname}/config/passwd /etc/passwd
|
||||
# mount --bind ${mbroot}/apps/${appname}/config/shadow /etc/shadow
|
||||
# }
|
||||
|
||||
set_config() {
|
||||
|
||||
logsh "【$service】" "加载${appname}设置... "
|
||||
[ ! -f $FTPUSER ] && logsh "【$service】" "未配置ftp用户!" && exit
|
||||
cat /etc/vsftpd.users 2> /dev/null | while read line
|
||||
do
|
||||
[ ! -z "${line}" ] && del ${line}
|
||||
done
|
||||
cat $FTPUSER | while read line
|
||||
do
|
||||
username=`cutsh ${line} 1`
|
||||
passwd=`cutsh ${line} 2`
|
||||
ftppath=`cutsh ${line} 3`
|
||||
echo $username >> /etc/vsftpd.users
|
||||
[ ! -z $username ] && add $username $passwd $ftppath
|
||||
done
|
||||
|
||||
if [ `mbdb get ${appname}.main.anon_enable` = "1" ]; then
|
||||
anon_enable=YES
|
||||
anon_root=`mbdb get ${appname}.main.anon_root` || anon_root=/var/ftp
|
||||
[ ! -d $anon_root ] && mkdir -p $anon_root
|
||||
[ ! -d $anon_root/Share ] && mkdir -p $anon_root/Share
|
||||
chmod 755 $anon_root
|
||||
dirmod=$(ls -ld $anon_root | cut -d' ' -f1)
|
||||
[ "$dirmod" == "drwxrwxrwx" ] && logsh "【$service】" "匿名访问开启失败,此目录不支持!"
|
||||
chmod 777 $anon_root/Share
|
||||
del ftp && add ftp 123 $anon_root
|
||||
else
|
||||
anon_enable=NO
|
||||
fi
|
||||
port=`mbdb get ${appname}.main.ftp_port` || port=21
|
||||
cp -rf ${mbroot}/apps/${appname}/config/${appname}.conf /etc/vsftpd.conf
|
||||
[ ! -d /var/run/vsftpd ] && mkdir -p /var/run/vsftpd
|
||||
echo -e "anonymous_enable=$anon_enable\nanon_root=$anon_root\nlisten_port=${port}" >> /etc/vsftpd.conf
|
||||
|
||||
}
|
||||
|
||||
start () {
|
||||
|
||||
result=$(ps | grep ${mbroot}/apps/${appname}/bin/${appname} | grep -v grep | wc -l)
|
||||
if [ "$result" != '0' ];then
|
||||
logsh "【$service】" "${appname}已经在运行!"
|
||||
exit 1
|
||||
fi
|
||||
logsh "【$service】" "正在启动${appname}服务... "
|
||||
if [ ! -f ${mbroot}/apps/${appname}/bin/${appname} ]; then
|
||||
bincheck ${binname}
|
||||
if [ $? -eq 0 ]; then
|
||||
logsh "【$service】" "安装程序成功,链接程序到工具箱..."
|
||||
ln -sf $(which $binname) ${mbroot}/apps/${appname}/bin/${appname}
|
||||
else
|
||||
logsh "【$service】" "程序安装失败!"
|
||||
end
|
||||
fi
|
||||
fi
|
||||
# init_mount
|
||||
set_config
|
||||
|
||||
open_port
|
||||
write_firewall_start
|
||||
daemon ${mbroot}/apps/${appname}/bin/${appname}
|
||||
if [ $? -ne 0 ]; then
|
||||
logsh "【$service】" "启动${appname}服务失败!"
|
||||
else
|
||||
logsh "【$service】" "启动${appname}服务完成!"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
stop () {
|
||||
|
||||
logsh "【$service】" "正在停止${appname}服务... "
|
||||
close_port
|
||||
remove_firewall_start
|
||||
# 删除用户
|
||||
cat /etc/vsftpd.users 2> /dev/null | while read line
|
||||
do
|
||||
[ ! -z "${line}" ] && del ${line}
|
||||
done
|
||||
rm -rf /etc/vsftpd.conf
|
||||
killall -9 ${appname} &> /dev/null
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
status() {
|
||||
|
||||
result=$(pssh | grep ${mbroot}/apps/${appname}/bin/${appname} | grep -v grep | wc -l)
|
||||
if [ "$result" == '0' ]; then
|
||||
status="未运行|0"
|
||||
else
|
||||
status="运行端口号: ${port}|1"
|
||||
fi
|
||||
mbdb set $appname.main.status="$status"
|
||||
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start) start ;;
|
||||
stop) stop ;;
|
||||
restart) stop; start ;;
|
||||
reload) close_port && open_port ;;
|
||||
status) status ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user