最初のbashスクリプト - ルートパスワードを一度だけ入力してください。

最初のbashスクリプト - ルートパスワードを一度だけ入力してください。

私は小さなbashスクリプトを書いた。ルートパスワードが必要です。

権限を必要とするコマンドは2つだけです。したがって、現在はスーパーユーザーのパスワードを入力する必要があります。二重- 私はそんなことをしたくありません。

スクリプトをデスクトップに接続しました。つまり、デスクトップで実行しているという意味です。

試してみましたが動作しません。

gksu -u root "iptables -D INPUT 7 && iptables -D INPUT 6"

答え1

個人的には、スクリプトを作成して~/bin$ PATHまたは別のディレクトリに配置してから実行しますsudo <script_name>。これを行う方法はいくつかあります。これが私が好む方法です。

mkdir ~/bin
editor ~/bin/myscript

次にスクリプトを作成します。

#!/bin/bash
iptables -D INPUT 7
iptables -D INPUT 6

保存して実行可能にします。

chmod +x ~/bin/myscript

最後に、スクリプトを実行するデスクトップショートカットを作成します。

editor ~/Desktop/myscript

含む:

[Desktop Entry]
Version=1.0
Type=Applicaton
Name=Myscript
Comment=My script that does something cool
Icon=help-info
Terminal=false
Exec=bash -c "sudo ~/bin/myscript"

これにより、sudoパスワードを一度だけ尋ねるメッセージが表示されます。

答え2

sh両方のコマンドを1つとして実行できます。

sudo sh -c 'iptables -D INPUT 7 && iptables -D INPUT 6'

もちろん、ワンタイムではない場合は、スクリプトを作成する方が便利です。

答え3

sudo -v「リフレッシュ」権限を使用できます。スクリプトの実行中にバックグラウンドループで使用できます。 (ずっと前に他の場所で改造しましたが、どこか覚えていません。)

sudo_done="/tmp/sudo.finished"
sudo_me() {
 while [ ! -f $sudo_done ]; do
  sudo -v
  sleep 5
 done &
}

stop_sudoing() {
  touch $sudo_done
  sleep 7
  rm $sudo_done
}

sudo_me &
# Your script here.
stop_sudoing &

また、GUIプログラムでなければ、gksu必要なくsudo大丈夫です。

関連情報