M7350v1_en_gpl

This commit is contained in:
T
2024-09-09 08:52:07 +00:00
commit f9cc65cfda
65988 changed files with 26357421 additions and 0 deletions
@@ -0,0 +1,100 @@
#!/bin/sh
exec 1>/dev/null 2>&1
VSFTPD_ANONY_RO_CONF=/etc/config/vsftpd/vsftpd_anon_ro.conf
VSFTPD_ANONY_RW_CONF=/etc/config/vsftpd/vsftpd_anon_rw.conf
VSFTPD_SIGNED_RW_CONF=/etc/config/vsftpd/vsftpd_signed_rw.conf
VSFTPD_CONF=/etc/config/vsftpd/vsftpd.conf
SDCARD_PATH=/media/card
OWN_NAME=`uci get product.storageshare.own_username`
OWN_PASSWD=`uci get product.storageshare.own_password`
ORIGIN_SIGNED_NAME=`uci get storageshare.user.name`
echo ${OWN_NAME}
if [ "${OWN_NAME}" = "1" ]
then
NEW_SIGNED_NAME=`uci get storageshare.property.username`
else
NEW_SIGNED_NAME=`uci get webserver.auth.username`
fi
if [ "${OWN_PASSWD}" = "1" ]
then
NEW_SIGNED_PASSWD=`uci get storageshare.property.password`
else
NEW_SIGNED_PASSWD=`uci get webserver.auth.password`
fi
# Ensure the daemon has been killed.
echo "stop vsftpd"
stop_vsftpd
# Ensure the dirs need by vsftpd.
echo "mkdir need by vsftpd"
busybox mkdir -p /var/log/vsftpd
busybox mkdir -m 444 -p /var/run/vsftpd
# Clean the log files.
echo "Clean the log files"
busybox rm -rf /var/log/vsftpd/*
# Add local user and chmod home
add_local_user()
{
umount /home/$1/sdcard
deluser $1 2>/dev/null
delgroup aid_inet 2>/dev/null
groupadd -g 3003 aid_inet 2>/dev/null
umount /home/$2/sdcard
deluser $2 2>/dev/null
(echo $3;echo $3)|adduser -G aid_inet $2
mkdir -p /home/$2
chmod a-w /home/$2
mkdir -p /home/$2/sdcard
chmod 777 /home/$2/sdcard
mount --bind ${SDCARD_PATH} /home/$2/sdcard
}
# Save configure
save_config()
{
if [ "${ORIGIN_SIGNED_NAME}"!="${NEW_SIGNED_NAME}" ]
then
uci set storageshare.user.name=${NEW_SIGNED_NAME}
uci commit storageshare
fi
}
# Produce the conf
case "$1" in
anonro)
echo "Produce the anon ro conf"
cat ${VSFTPD_ANONY_RO_CONF} > ${VSFTPD_CONF}
echo "Chmod local user home"
add_local_user ftp ftp ftp
;;
anonrw)
echo "Produce the anony rw conf"
cat ${VSFTPD_ANONY_RW_CONF} > ${VSFTPD_CONF}
echo "Chmod local user home"
add_local_user ftp ftp ftp
;;
signed)
echo "Produce the signed conf"
cat ${VSFTPD_SIGNED_RW_CONF} > ${VSFTPD_CONF}
echo "Chmod local user home"
add_local_user ${ORIGIN_SIGNED_NAME} ${NEW_SIGNED_NAME} ${NEW_SIGNED_PASSWD}
save_config
;;
*)
echo "Err: unknown param"
exit 1
;;
esac
# Start the daemons
echo "Start vsftpd"
vsftpd &
exit $?
+49
View File
@@ -0,0 +1,49 @@
#!/bin/sh
exec 1>/dev/null 2>&1
PIDS_VSFTPD=
PIDS_TO_KILL=
kill_pids()
{
PID_TO_KILL=
for PID_TO_KILL in ${PIDS_TO_KILL}
do
kill ${PID_TO_KILL}
echo ${PID_TO_KILL}
done
}
force_kill_pids()
{
PID_TO_KILL=
for PID_TO_KILL in ${PIDS_TO_KILL}
do
kill -9 ${PID_TO_KILL}
echo ${PID_TO_KILL}
done
}
# Try to kill
PIDS_VSFTPD=`busybox pgrep vsftpd | busybox sort -r`
if busybox test -z "${PIDS_VSFTPD}"
then
exit 0
fi
PIDS_TO_KILL="${PIDS_VSFTPD}"
kill_pids
# sleep 1s
sleep 1
# Force to kill
PIDS_VSFTPD=`busybox pgrep vsftpd | busybox sort -r`
if busybox test -z "${PIDS_VSFTPD}"
then
exit 0
fi
PIDS_TO_KILL="${PIDS_VSFTPD}"
force_kill_pids
exit 0
@@ -0,0 +1,63 @@
diff --git a/defs.h b/defs.h
--- a/defs.h
+++ b/defs.h
@@ -1,7 +1,7 @@
#ifndef VSF_DEFS_H
#define VSF_DEFS_H
-#define VSFTP_DEFAULT_CONFIG "/etc/vsftpd.conf"
+#define VSFTP_DEFAULT_CONFIG "/etc/config/vsftpd/vsftpd.conf"
#define VSFTP_COMMAND_FD 0
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -29,21 +29,21 @@
$(CC) -o vsftpd $(OBJS) $(LINK) $(LDFLAGS) $(LIBS)
install:
- if [ -x /usr/local/sbin ]; then \
- $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \
+ if [ -x $(DESTDIR)/usr/local/sbin ]; then \
+ $(INSTALL) -m 755 vsftpd $(DESTDIR)/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; \
+ $(INSTALL) -m 755 vsftpd $(DESTDIR)/usr/sbin/vsftpd; fi
+ if [ -x $(DESTDIR)/usr/local/man ]; then \
+ $(INSTALL) -m 644 vsftpd.8 $(DESTDIR)/usr/local/man/man8/vsftpd.8; \
+ $(INSTALL) -m 644 vsftpd.conf.5 $(DESTDIR)/usr/local/man/man5/vsftpd.conf.5; \
+ elif [ -x $(DESTDIR)/usr/share/man ]; then \
+ $(INSTALL) -m 644 vsftpd.8 $(DESTDIR)/usr/share/man/man8/vsftpd.8; \
+ $(INSTALL) -m 644 vsftpd.conf.5 $(DESTDIR)/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
- if [ -x /etc/xinetd.d ]; then \
- $(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi
+ $(INSTALL) -m 644 vsftpd.8 $(DESTDIR)/usr/man/man8/vsftpd.8; \
+ $(INSTALL) -m 644 vsftpd.conf.5 $(DESTDIR)/usr/man/man5/vsftpd.conf.5; fi
+ if [ -x $(DESTDIR)/etc/xinetd.d ]; then \
+ $(INSTALL) -m 644 xinetd.d/vsftpd $(DESTDIR)/etc/xinetd.d/vsftpd; fi
clean:
rm -f *.o *.swp vsftpd
diff --git a/sysutil.c b/sysutil.c
--- a/sysutil.c
+++ b/sysutil.c
@@ -2410,7 +2410,8 @@
void
vsf_sysutil_setgid_numeric(int gid)
{
- int retval = setgid(gid);
+ //int retval = setgid(gid);
+int retval = setgid(3003);
if (retval != 0)
{
die("setgid");
+28
View File
@@ -0,0 +1,28 @@
listen=YES
anonymous_enable=YES
no_anon_password=YES
anon_world_readable_only=YES
write_enable=NO
anon_other_write_enable=NO
anon_mkdir_write_enable=NO
anon_upload_enable=NO
anon_umask=000
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
max_clients=50
max_per_ip=5
chroot_local_user=YES
anon_root=/home/ftp
secure_chroot_dir=/var/run/vsftpd
local_enable=NO
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd/vsftpd.log
secure_chroot_dir=/var/run/vsftpd/
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
one_process_model=NO
async_abor_enable=NO
+26
View File
@@ -0,0 +1,26 @@
listen=YES
anonymous_enable=YES
no_anon_password=YES
anon_world_readable_only=YES
write_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_umask=000
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
max_clients=50
max_per_ip=5
chroot_local_user=YES
anon_root=/home/ftp
secure_chroot_dir=/var/run/vsftpd
local_enable=NO
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
one_process_model=NO
async_abor_enable=NO
@@ -0,0 +1,21 @@
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=000
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
max_clients=50
max_per_ip=5
chroot_local_user=YES
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd/vsftpd.log
secure_chroot_dir=/var/run/vsftpd/
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
one_process_model=NO
async_abor_enable=NO
@@ -0,0 +1,43 @@
DESCRIPTION = "Very Secure FTP server 3.0.0 for storage sharing"
HOMEPAGE = "https://security.appspot.com/vsftpd.html"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271"
SRC_URI = " \
https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \
file://start_vsftpd \
file://stop_vsftpd \
file://vsftpd_anon_ro.conf \
file://vsftpd_anon_rw.conf \
file://vsftpd_signed_rw.conf \
file://vsftpd_3.0.0.patch \
"
S="${WORKDIR}/${PN}-${PV}"
DEPENDS = "libcap openssl"
PACKAGECONFIG ??= "tcp-wrappers"
PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers"
LDFLAGS_append =" -lcrypt -lcap"
do_compile() {
oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -ldl -lnsl -lssl -lresolv -lutil -lcap -lrt -lcrypto -lssl -lresolv"
}
do_install() {
install -d ${D}${sbindir} ${D}${bindir} ${D}${sysconfdir}/config/vsftpd ${D}${sysconfdir}/default_config/vsftpd
install -d ${D}${mandir}/man8
install -d ${D}${mandir}/man5
oe_runmake 'DESTDIR=${D}' install
install -m 0755 ${WORKDIR}/vsftpd_anon_ro.conf ${D}${sysconfdir}/config/vsftpd
install -m 0755 ${WORKDIR}/vsftpd_anon_rw.conf ${D}${sysconfdir}/config/vsftpd
install -m 0755 ${WORKDIR}/vsftpd_signed_rw.conf ${D}${sysconfdir}/config/vsftpd
install -m 0755 ${WORKDIR}/vsftpd_anon_ro.conf ${D}${sysconfdir}/default_config/vsftpd
install -m 0755 ${WORKDIR}/vsftpd_anon_rw.conf ${D}${sysconfdir}/default_config/vsftpd
install -m 0755 ${WORKDIR}/vsftpd_signed_rw.conf ${D}${sysconfdir}/default_config/vsftpd
install -m 0755 ${WORKDIR}/start_vsftpd ${D}${bindir}/start_vsftpd
install -m 0755 ${WORKDIR}/stop_vsftpd ${D}${bindir}/stop_vsftpd
}