whoamiコマンドでシェルスクリプトを実行したユーザーがrootかチェックする方法
目次
スポンサードリンク
シェルスクリプトは特定のユーザー以外には実行してほしくないことがあります。この記事ではwhoamiコマンドを使ってシェルスクリプトを実行したユーザーをチェックする方法を解説します。
whoamiコマンドとは
whoamiコマンドは現在のログインしているユーザー名を出力します。 id -un コマンドでも同様の結果を取得することができます。
[root@hostname ~]# whoami
root
シェルスクリプトで実行ユーザーをチェックする
whoamiコマンドでシェルスクリプトを実行したユーザーを変数user_nameに保存しています。ifコマンドでuser_nameがrootと一致するかチェックし、一致しない場合はメッセージを出力して終了しています。sudoでこのシェルスクリプトを実行した場合は、whoamiの結果はrootとなり、シェルスクリプトを実行することができます。sudoでの実行を制限したい場合はwhoamiコマンドではなくlognameコマンドを使う方法があります。
#!/bin/bash
user_name=`whoami`
if [ $user_name != "root" ]; then
echo "rootユーザーで実行してください"
exit 1
fi
exit 0
ifコマンドで比較するユーザー名を調整すればroot以外の特定のユーザーにのみ実行を許可するシェルスクリプトを作るなど応用もできますね。
シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法