我想运行一个sudo命令,提示GUI让用户输入密码并取回密码以备将来使用。
在gnome扩展中运行
GLib.spawn_command_line_sync('sudo echo e')
我得到以下错误
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
您永远不应该存储用户密码供以后使用,也不应该运行产生其他程序的特权程序,而是在每次需要时进行提示。
要提示输入特权程序,通常可以使用pkexec
代替sudo
。此外,您应该尽可能与Gio.Subprocess
异步生成,因为同步子进程会阻塞GNOMEShell的主线程。