我制作了一个bash脚本,专门使用kdialog与用户进行交互。它是从“ .desktop”文件启动的,因此用户永远不会看到终端。它看起来100%像一个GUI应用程序(即使它只是一个bash脚本)。它仅在KDE(Kubuntu 12.04)中运行。
我唯一的问题是安全,方便地处理密码输入。我找不到令人满意的解决方案。
该脚本旨在以普通用户身份运行,并在首次需要sudo命令时提示输入密码。这样,大多数不需要sudo权限的命令都以普通用户身份运行。发生的情况(从终端运行脚本时)是提示用户输入一次密码,并且默认的sudo超时允许脚本完成,包括所有其他sudo命令,而无需再次提示用户。这也是我希望它也可以在GUI后运行的方式。
主要问题是使用kdesudo
启动我的脚本(这是标准的GUI方式)意味着整个脚本由root用户执行。因此,文件所有权分配给了根用户,我不能~/
在路径中依赖它,而其他许多事情都不理想。以root用户身份运行整个脚本只是一个非常不令人满意的解决方案,我认为这是一个不好的做法。
我非常感谢让用户通过GUI一次输入sudo密码而不以root身份运行整个脚本的任何想法。谢谢。