ファイルがルートアカウントで実行されていることをどのように確認できますか?

ファイルがルートアカウントで実行されていることをどのように確認できますか?

-rwsr-xr-x script.shルートアカウント権限を持つファイルを作成したとします。ファイルにsuidビットが設定されているため、ファイルを実行したいすべてのユーザーはファイル所有者のルートによって実行されます。たとえば、passwd次のコマンドを見てみましょう。

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 68208 Apr 16 17:06 /usr/bin/passwd

このコマンドは私たちのファイルに似ています。 rootまたはsudo権限を持ってこのコマンドを実行するすべてのユーザーは、rootアカウントで実行されます。

問題は、このテーマをどのように確認できるかということです。

script.shこれを把握するために、以下を試しました。内容を見ると、次のような簡単なスクリプトを作成しました。

#!/bin/bash 

if [[ $UID -eq 0 ]]
then 
    echo "Running as root"
else
    echo "Not root"
fi

通常のユーザーとしてこのスクリプトを実行すると、出力は次のようになります。Not root

それでは、rootとして実行されているかどうかを確認しますか?


私がこれらの概念を間違って理解している場合は、教えてください。私は初心者です。

答え1

これを試してみてはいかがですか?

if [ $(whoami) = "root" ]

関連情報