2018-12-31

This commit is contained in:
monlor
2018-12-31 23:47:47 +08:00
commit 3ae56f5e6e
1091 changed files with 173538 additions and 0 deletions

Binary file not shown.

Binary file not shown.

View 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】-------------------

View File

@@ -0,0 +1 @@
1.1.6

View 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

View 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"

View 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