Исправлено затирание хешей паролей миграцией, версия 1.4.8

This commit is contained in:
Petro1990 2026-03-13 22:07:58 +03:00
parent 1c2e7bdf7a
commit 9bbef8efae
1 changed files with 8 additions and 11 deletions

19
rproxy
View File

@ -3,7 +3,7 @@
# Публикация локальных сервисов через SSH-туннели + nginx на VPS # Публикация локальных сервисов через SSH-туннели + nginx на VPS
# http://5.104.75.50:3000/Petro1990/rProxy # http://5.104.75.50:3000/Petro1990/rProxy
VERSION="1.4.7" VERSION="1.4.8"
CONF_DIR="/opt/etc/rproxy" CONF_DIR="/opt/etc/rproxy"
CONF_FILE="$CONF_DIR/rproxy.conf" CONF_FILE="$CONF_DIR/rproxy.conf"
SERVICES_DIR="$CONF_DIR/services" SERVICES_DIR="$CONF_DIR/services"
@ -120,9 +120,9 @@ VPS_PASS="$VPS_PASS"
EOF EOF
# Очищаем rproxy.conf от старых системных переменных, НО сохраняем новые # Очищаем rproxy.conf от старых системных переменных, НО сохраняем новые
local tmp_conf="/tmp/rproxy.conf.tmp" local tmp_conf="/tmp/rproxy.conf.tmp"
echo "CERTBOT_EMAIL=\"$CERTBOT_EMAIL\"" > "$tmp_conf" printf "CERTBOT_EMAIL='%s'\n" "$CERTBOT_EMAIL" > "$tmp_conf"
[ -n "$DEFAULT_AUTH_USER" ] && echo "DEFAULT_AUTH_USER=\"$DEFAULT_AUTH_USER\"" >> "$tmp_conf" [ -n "$DEFAULT_AUTH_USER" ] && printf "DEFAULT_AUTH_USER='%s'\n" "$DEFAULT_AUTH_USER" >> "$tmp_conf"
[ -n "$DEFAULT_AUTH_PASS" ] && echo "DEFAULT_AUTH_PASS=\"$DEFAULT_AUTH_PASS\"" >> "$tmp_conf" [ -n "$DEFAULT_AUTH_PASS" ] && printf "DEFAULT_AUTH_PASS='%s'\n" "$DEFAULT_AUTH_PASS" >> "$tmp_conf"
mv "$tmp_conf" "$CONF_FILE" mv "$tmp_conf" "$CONF_FILE"
fi fi
[ -f "$VPS_DIR/default.conf" ] && chmod 600 "$VPS_DIR/default.conf" [ -f "$VPS_DIR/default.conf" ] && chmod 600 "$VPS_DIR/default.conf"
@ -217,7 +217,8 @@ gen_htpasswd() {
local hash=$(openssl passwd -apr1 "$pass") local hash=$(openssl passwd -apr1 "$pass")
echo "$user:$hash" echo "$user:$hash"
else else
# Запасной вариант если openssl нет (обычный текст, Nginx его понимает) warn "Утилита 'openssl' не найдена! Пароль будет сохранен в открытом виде (Nginx может его не принять)."
warn "Рекомендуется: opkg update && opkg install openssl-util"
echo "$user:$pass" echo "$user:$pass"
fi fi
} }
@ -1266,14 +1267,10 @@ do_change_auth_defaults() {
[ -z "$pass" ] && { warn "Пароль не может быть пустым"; pause; return; } [ -z "$pass" ] && { warn "Пароль не может быть пустым"; pause; return; }
# Безопасное сохранение (заменяем двойные кавычки и $ для предотвращения инъекций)
local s_user=$(echo "$user" | sed 's/"/\\"/g; s/\$/\\\$/g')
local s_pass=$(echo "$pass" | sed 's/"/\\"/g; s/\$/\\\$/g')
sed -i "/DEFAULT_AUTH_USER=/d" "$CONF_FILE" sed -i "/DEFAULT_AUTH_USER=/d" "$CONF_FILE"
sed -i "/DEFAULT_AUTH_PASS=/d" "$CONF_FILE" sed -i "/DEFAULT_AUTH_PASS=/d" "$CONF_FILE"
echo "DEFAULT_AUTH_USER=\"$s_user\"" >> "$CONF_FILE" printf "DEFAULT_AUTH_USER='%s'\n" "$user" >> "$CONF_FILE"
echo "DEFAULT_AUTH_PASS=\"$s_pass\"" >> "$CONF_FILE" printf "DEFAULT_AUTH_PASS='%s'\n" "$pass" >> "$CONF_FILE"
msg "Данные успешно сохранены" msg "Данные успешно сохранены"
DEFAULT_AUTH_USER="$user" DEFAULT_AUTH_USER="$user"