rootとしてkdialogプログレスバー「オブジェクトアクセスできません」

StackOverflow https://stackoverflow.com/questions/1673760

  •  16-09-2019
  •  | 
  •  

質問

私は、root権限が必要なコマンドの多くを含むスクリプトを持っています。代わりに、スクリプト内のsudoを持つすべてのこれらのコマンドを実行しているの私は、sudoで全体のスクリプトを実行することを好みます。これは、sudoersファイルにそれを置くためにも、より快適です。

sudo ./script.sh

しかし、私は動作しませんkdialogプログレスバーと進行状況を表示したいと思います。バーを含むメッセージボックスが表示されますが、進捗状況を更新しようとすると、エラーメッセージ「アクセスできないオブジェクト」がある。

dcopRef=`kdialog --progressbar "Initialising..." 5`  # works
dcop $dcopRef setProgress 1  # error object not accessible

私は、プログレスバーコードが動作しますので、その後、sudoをせずにスクリプトを呼び出すことが、私はどこから始めれば見当がつかない、それはユーザー権限で行う必要があります確信しています。誰もがこの問題を解決し、まだ、sudoでスクリプトを呼び出す方法を知っていますか?

私はKDE 3.5.7でのopenSUSE 10.3を使用しています。

おかげで、 クリス

役に立ちましたか?

解決

最後に、私は私の問題を解決する方法を見つけました!それは美しいではありませんが、それは動作します...

「script.sh」ファイル内には、sudoをの助けを借りて、元の(rootではなく)ユーザーとしてプログレスバーにアクセス

dcopRef=`sudo -H -u $SUDO_USER kdialog --progressbar "Initialising..." 5`
dcop sudo -H -u $SUDO_USER $dcopRef setProgress 1

あなたは、明示的にルート(これは少し奇妙なようだが)最初のファイル、あなたのsudoersファイルにこれを追加して、ユーザーとして「kdialog」と「DCOP」を呼び出す使用できるようにする必要があります

root  ALL = (ALL)  NOPASSWD: /opt/kde3/bin/

ほらます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top