方法1: ユーザーのIDを確認する
#!/bin/bash
if [ "$(id -u)" != "0" ]; then
echo "このスクリプトはsudo権限で実行してください"
exit 1
fi
# ここにスクリプトのコードを記述する
この方法では、コマンドid -u
を使用して現在のユーザーのIDを取得し、それが0(rootユーザー)でないことを確認します。もしrootユーザーでない場合、エラーメッセージを表示してスクリプトを終了します。
方法2: sudoコマンドを使用してチェックする
#!/bin/bash
if ! sudo -n true 2>/dev/null; then
echo "このスクリプトはsudo権限で実行してください"
exit 1
fi
# ここにスクリプトのコードを記述する
この方法では、sudo -n true
を実行し、sudo権限がない場合にエラーメッセージを表示してスクリプトを終了します。2>/dev/null
はエラーメッセージを無視するために使用されます。
方法3: /etc/sudoersファイルを確認する
#!/bin/bash
if ! sudo grep -q "^$(whoami) " /etc/sudoers; then
echo "このスクリプトはsudo権限で実行してください"
exit 1
fi
# ここにスクリプトのコードを記述する
この方法では、sudo grep -q "^$(whoami) " /etc/sudoers
を実行し、現在のユーザーがsudoersファイルに記載されていることを確認します。もし記載されていない場合、エラーメッセージを表示してスクリプトを終了します。
以上の方法は、Bashスクリプトで実行ユーザーがsudoでないことを確認するためのいくつかの一般的な手法です。適切な方法を選択し、スクリプトの冒頭に追加してください。これにより、スクリプトが必要な権限で実行されることを保証できます。