From f4935217cf178b58549dfb3f34655437d192a551 Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Sun, 5 Nov 2023 21:30:05 +0100 Subject: [PATCH] arc: fix password reset Signed-off-by: AuxXxilium --- files/initrd/opt/arc/arc.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index c09c1f37..4580ac8c 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -2393,14 +2393,14 @@ function resetPassword() { dialog --backtitle "$(backtitle)" --colors --title "Reset DSM Password" \ --msgbox "Invalid Password" 0 0 done - NEWPASSWD="$(python -c "import crypt,getpass;pw=\"${VALUE}\";print(crypt.crypt(pw))")" + NEWPASSWD="$(python -c "from passlib.hash import sha512_crypt;pw=\"${VALUE}\";print(sha512_crypt.using(rounds=5000).hash(pw))")" ( mkdir -p "${TMP_PATH}/sdX1" for I in $(ls /dev/sd.*1 2>/dev/null | grep -v ${LOADER_DISK_PART1}); do mount "${I}" "${TMP_PATH}/sdX1" OLDPASSWD="$(cat "${TMP_PATH}/sdX1/etc/shadow" | grep "^${USER}:" | awk -F ':' '{print $2}')" - [ -n "${OLDPASSWD}" ] && sed -i "s|${OLDPASSWD}|${NEWPASSWD}|g" "${TMP_PATH}/sdX1/etc/shadow" - sed -i "s|status=on|status=off|g" "${TMP_PATH}//usr/syno/etc/packages/SecureSignIn/preference/${USER}/method.config" 2>/dev/null + [ -n "${NEWPASSWD}" -a -n "${OLDPASSWD}" ] && sed -i "s|${OLDPASSWD}|${NEWPASSWD}|g" "${TMP_PATH}/sdX1/etc/shadow" + sed -i "s|status=on|status=off|g" "${TMP_PATH}/usr/syno/etc/packages/SecureSignIn/preference/${USER}/method.config" 2>/dev/null sync umount "${I}" done