[解決済み] bashスクリプトでrootとして実行されているかどうかを確認する方法
2022-03-15 08:01:04
質問
ルートレベルのパーミッションを必要とするスクリプトを書いているのですが、スクリプトがルートとして実行されない場合、単に "Please run as root." とエコーして終了するようにしたいのですが、どうすればよいでしょうか。
以下は、私が求めていることの疑似コードです。
if (whoami != root)
then echo "Please run as root"
else (do stuff)
fi
exit
どのようにすれば、最もよく(きれいに、安全に)これを達成できるでしょうか?ありがとうございます。
ああ、はっきりさせておきたいのですが、(何かをする)部分は、それ自体がrootを必要とするコマンドの実行を含んでいます。そのため、通常のユーザーで実行すると、エラーが発生します。これは、rootコマンドを必要とするスクリプトをスクリプト内でsudoを使わずにきれいに実行するためのもので、構文上の工夫を探しているところです。
どのように解決するのですか?
いくつかの回答がありましたが、どうやら一番良い方法は、isを使うことだそうです。
-
id -u
- rootで実行した場合、idは0を返します。
これは他の方法よりも信頼性が高いようで、スクリプトを実行する際に
sudo
.
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのif条件で「unary operator expected」エラーが発生する。
-
[解決済み】if [](角括弧)の「[: 引数が多すぎる」エラーの意味)
-
[解決済み】firebase-tools "-bash: firebase: command not found".
-
[解決済み] osx find exec rm find: exec: 不明な主またはオペレータ
-
[解決済み] bashスクリプトでタブ文字をエコーする
-
[解決済み] find -exec cp {} でエラー 'find: missing argument to -exec' が発生した場合の解決策。TARGET_DIR + [閉店]。
-
[解決済み] systemd サービス 203/EXEC の失敗 (そのようなファイルやディレクトリがない) を修正する。
-
[解決済み] zip警告 - 名前が一致しない
-
[解決済み] Bash/Terminalで複数行の環境変数を書き出す方法 例: RSA秘密鍵
-
[解決済み] 構文エラー:オペランドが期待される(エラーメッセージは "+")。