2017-11-04 19 views
0

sudoプログラムを停止してスクリプトの終了を停止するには?
Sudoはパスワードの入力を求めるプロンプトを表示しますが、最初の試行では失敗し、2度目の試行では成功しますが、スクリプトの実行が停止します。
スクリプトは停止し、パスワードのプロンプト後のコマンドは実行されません。
スクリプトのhi7は実行されません。
どうすればsudoがスクリプトの残りの部分を終了するのを止めるのですか?sudoの停止スクリプトの終了を停止する

sudo bash << 'END' 
    cat << 'DONE' > /usr/bin/hi 
     echo hi 
DONE 
    sudo chmod +x /usr/bin/hi 
END 
hi 
+0

sudoはパスワードの入力を待機します。それはあなたが「止まる」ことによって言及しているのでしょうか? – anishsane

+0

また、すでに 'sudo'の下で実行されているので、' chmod'コールの前に 'sudo'は必要ありません。 – anishsane

+0

質問を編集しました。私は、sudoがパスワードを要求するのを止めることによって、スクリプト内の次のすべてのコマンドが実行されるのを止めます。 – FireInTheSky

答えて

0

スクリプトにroot権限が必要な場合は、いつでもそれらを提供する必要があります。 スクリプトをrootとして実行します。

0

は、私が何をやろうとしていることは多いと思います。私はあなたが、独自に変更していない、このファイルが実行可能になりたいように見えるよう、/usr/bin/hiファイルのうちのchmodを移動

sudo bash << 'END' 
    cat << 'DONE' > /usr/bin/hi 
     echo hi 
DONE 
    chmod +x /usr/bin/hi 
END 
hi 

ノート権利。

私はまた、sudoのコンテキストですでに使用しているので、役に立たない2番目のsudoも削除しました。

EDIT:次の質問編集:あなたは、sudoでコマンドを実行するとき、あなたは(通常は)「しばらくの間」が開催されているパスワード、および、ルートの資格を与える必要があり、実際

、それが理由です最初にパスワードを尋ねられますが、2回目はパスワードではありません。

パスワードを尋ねられないようにするには、sudoersファイル(visudoコマンド)を編集し、パスワードなしで許可されたコマンドに実行するプログラムを追加する必要があります(ファイル内のドキュメント、またはman sudoers )。それにもかかわらず、これらの無制限の制限を与えることは非常に危険です。プログラムはbashになるため、この場合はespacially、コンソールをrootとして実行できるようになります。 rootとしてsudoできることはすでに大きな責任です。パスワードなしでは、rootとしてシェルを使うのとほとんど同じです。したがって、非常に危険です(特に、コマンドやスクリプトの更新中に間違いを犯すと、システムにとって)。

+0

質問の例を編集します。それは大きな間違いです。それを指摘してくれてありがとう。 – FireInTheSky

0

sudoは、sudo以降のコマンドの実行を停止していません。
これらのコマンドはすべての下でsudoの下で実行されています。
つまり、最初にsudoが実行されます。それから、bashが呼び出され、他のコマンドはここにhere-docとして供給されます。

あなたは以下のようにsudo-Sオプションを使用することができます。

sudo -S bash << 'END' 
root123 
    cat << 'DONE' > /usr/bin/hi 
     echo hi 
DONE 
    chmod +x /usr/bin/hi 
END 
hi 

はここにあなたのユーザのパスワードでroot123を交換してください。スクリプトにプレーンテキストで入力する必要があります。

効果的には、この文書はsudo + bashで消費されます。

他のオプションは、SUDO_ASKPASSを使用することです。詳細についてはman sudoを確認してください。

+0

パスワード= 'zenity --password';エコー$パスワード。動作しません 。 – FireInTheSky

+0

^^この行をスクリプトの先頭に追加してみてください: 'export SUDO_ASKPASS =" zenity --password "' – anishsane

+0

まだ動作しません。 – FireInTheSky

関連する問題