带有 (X) 对话框的 Bash 脚本要求输入 root 密码(kdesu 替代品)

带有 (X) 对话框的 Bash 脚本要求输入 root 密码(kdesu 替代品)

我正在使用 (X)dialog 作为正常运行的脚本,但它需要 root 权限来执行某些命令。该脚本从 .desktop 文件运行,因此用户看不到终端。例如这里

#!/bin/bash
Xdialog --msgbox "Welcome" 0 0
touch /root/testfile
Xdialog --msgbox "All OK" 0 0

touch命令不执行。一种解决方案是使用kdesu

kdesu touch /root/testfile

但这种方法有两个问题:用户必须为每个命令提供密码,并且 kdesu 窗口不遵循与其余窗口相同的主题。

请注意,我希望用户提供 root 密码而不是 sudoer。

我找到了类似的脚本这里,但我无法将其应用于我的脚本,因为实际命令无法像以前那样接受密码sshpass

答案1

一种方法是su在脚本的开头执行。用户只需在脚本开头输入一次 root 密码。然后,您可以通过执行命令而无需 root 权限su [username] -c [your command not to be executed with root privileges]

但是,您不能在此处使用对话框来询问密码。

相关内容