首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kdialog进度条"object not accessible“作为root

kdialog进度条"object not accessible“作为root
EN

Stack Overflow用户
提问于 2009-11-04 21:31:35
回答 1查看 772关注 0票数 1

我有一个脚本,其中包含许多需要root权限的命令。与其在脚本中使用sudo来运行所有这些命令,我更喜欢使用sudo来运行整个脚本。将其放在sudoers文件中也更方便。

代码语言:javascript
复制
sudo ./script.sh

但是,我想用kdialog进度条来显示进度,它不起作用。包含该条的消息框出现,但在尝试更新进度时,出现错误消息"object not accessible“。

代码语言:javascript
复制
dcopRef=`kdialog --progressbar "Initialising..." 5`  # works
dcop $dcopRef setProgress 1  # error object not accessible

我非常确定这与用户权限有关,因为进度条形码可以正常工作,然后在没有sudo的情况下调用脚本,但我不知道从哪里开始。有没有人知道如何修复这个问题,并且仍然使用sudo调用脚本?

我正在使用带有openSUSE 3.5.7的KDE10.3

谢谢,克里斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-05 21:29:58

我终于找到了解决问题的方法!它不是很漂亮,但它很有效。

在'script.sh‘文件中,您可以在sudo的帮助下以原始用户(而非根用户)的身份访问进度条:

代码语言:javascript
复制
dcopRef=`sudo -H -u $SUDO_USER kdialog --progressbar "Initialising..." 5`
dcop sudo -H -u $SUDO_USER $dcopRef setProgress 1

您必须显式地允许root以用户身份使用调用'kdialog‘和'dcop’(尽管这看起来有点奇怪),方法是首先将以下内容添加到sudoers文件中:

代码语言:javascript
复制
root  ALL = (ALL)  NOPASSWD: /opt/kde3/bin/

瞧啊。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1673760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档