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本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon