• ベストアンサー

sudoでのシェルスクリプト実行

ユーザに、sudoで実行してもらいたいシェルスクリプトがあります。 sudoで実行しなかった場合、「sudoで実行してください」 というような警告文を表示し、処理を実行せずに終了し、 sudoで実行した場合のみ、処理を行ないたいです。 こうした動作を実現するには、シェルスクリプトに どういった記述を追記すればいいでしょうか? 環境はMacOSXです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「sudo で実行する」の意味がよくわからんのですが, 純粋な意味で「sudo を経由して実行する」ということなら, そのような (=「sudo 経由で実行されたのか直接実行されたのかを知る」) 方法はなかったと思います. 特権ユーザー (いわゆるルート) で実行されたかどうかを知るだけなら, シェル変数の UID あるいは EUID のどちらか (または両方) を使ってチェックできます. if [[ $UID -eq 0 ]]; then とか if [[ $EUID -eq 0 ]]; then とか, そんな感じかな.

kansai5050
質問者

お礼

的確なアドバイスありがとうございます。 おかげで、期待していた通りの動作を実現することが出来ました。 本当にありがとうございました!

関連するQ&A