-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" ]