rootとしてkdialogプログレスバー「オブジェクトアクセスできません」
質問
私は、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/
ほらます。
所属していません StackOverflow