mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-06-01 22:19:51 +08:00
47 lines
1.3 KiB
Bash
Executable File
47 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# We use sudo twice to avoid ACE bug here
|
|
# https://gitee.com/amber-ce/amber-ce-bookworm/commit/43e1a1599ede474b37e41aa10c53fd8afc4d35a1
|
|
|
|
#!/bin/bash
|
|
# We use sudo twice to avoid ACE bug here
|
|
# https://gitee.com/amber-ce/amber-ce-bookworm/commit/43e1a1599ede474b37e41aa10c53fd8afc4d35a1
|
|
|
|
function zenity_prompt() {
|
|
if [[ -e /usr/bin/garma ]]; then
|
|
garma "$@"
|
|
else
|
|
$(command -v zenity) "$@"
|
|
fi
|
|
}
|
|
|
|
# 检查sudo是否需要密码
|
|
if sudo -n true 2>/dev/null; then
|
|
echo "sudo 无需密码,继续执行"
|
|
else
|
|
# 循环输入密码直到成功或用户取消
|
|
while true; do
|
|
# 使用zenity弹出密码输入框
|
|
PASSWORD=$(zenity_prompt --password --title="需要sudo权限")
|
|
|
|
# 检查用户是否取消输入
|
|
if [ -z "$PASSWORD" ]; then
|
|
zenity_prompt --error --text="操作已取消"
|
|
exit 1
|
|
fi
|
|
|
|
# 尝试使用输入的密码执行sudo命令
|
|
echo "$PASSWORD" | sudo -S -v 2>/dev/null
|
|
|
|
# 检查sudo是否成功
|
|
if [ $? -eq 0 ]; then
|
|
echo "密码正确,继续执行"
|
|
break
|
|
else
|
|
zenity_prompt --error --text="密码错误,请重新输入"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# 使用sudo命令执行目标程序
|
|
echo "$PASSWORD" | sudo sudo -S "$@"
|