はじめに
シェルスクリプトにて実行ユーザを限定したいプログラムを作成する際に書いたコードです。ユーザーの実行権限をそのユーザだけにするとかグループにしておけばいいじゃん、という意見が予想されますが気にしない。
スクリプト
1 2 3 4 5 6 7 8 | #---------------------------------------------- # 実行時のユーザを確認 #---------------------------------------------- if [[ `whoami` != "root" ]] then echo "rootユーザで実行してください。" exit 1 fi |
解説
whoamiは直訳で「私はだれ?」だと思いますが、現在の(コマンドを実行した)ユーザー名を表示するコマンドです。 whoamiコマンドの実行結果が目的のユーザーであるかをif文で条件分岐しているだけになります。rootでなければ戻り値1でプログラムをexitします。rootの部分を目的のユーザーに変えればそれで完了です。実行ユーザーによって処理を分けたりすることにも使えますね。