(X)dialogを正しく実行するためのスクリプトとして使用していますが、特定のコマンドを実行するにはroot権限が必要です。スクリプトは .desktop ファイルで実行されるため、端末はユーザーには表示されません。たとえば、ここ
#!/bin/bash
Xdialog --msgbox "Welcome" 0 0
touch /root/testfile
Xdialog --msgbox "All OK" 0 0
コマンドtouch
は実行されません。 1つの解決策は、次を使用することです。kdesu
kdesu touch /root/testfile
しかし、このアプローチには2つの問題があります。ユーザーは各コマンドにパスワードを入力する必要があり、 kdesu ウィンドウは残りのウィンドウと同じトピックに従わない。
ユーザーがsudoerではなくルートパスワードを提供したいと思います。
同様のスクリプトが見つかりましたここただし、実際のコマンドが以前のようにパスワードを受け入れないため、スクリプトには適用できませんsshpass
。
答え1
1つの方法は、su
スクリプトの冒頭で行うことです。ユーザーはスクリプトの起動時にルートパスワードを1回入力するだけです。これにより、root権限なしでコマンドを実行できますsu [username] -c [your command not to be executed with root privileges]
。
ただし、ここではダイアログボックスを使用してパスワードを要求することはできません。