スーパーユーザー権限があるというのは実際に何を意味しますか?

スーパーユーザー権限があるというのは実際に何を意味しますか?

ファイルにアクセスすると、プロセスの有効なユーザーIDでファイル権限が確認されます。ただし、ユーザーIDを変更する方法(例えばsetuid()、、、setreuid()seteid()

これらの関数では、その関数を呼び出すプロセスの有効なユーザーID(有効なユーザーIDはroot)からスーパーユーザー権限も確認されますか?

ベストアンサー1

「スーパーユーザー権限があります」という表現は異なる意味を持つことができます。文脈を見てください。

システム管理の観点から「スーパーユーザー権限を保持」とは、通常、rootアカウントへのアクセスを許可されているユーザーを意味します。たとえば、sudo設定で権限が付与されているか、ルートパスワードを知っているためです。

プログラミング環境では、「スーパーユーザー権限」とは通常、UID 0で実行されるプロセスを意味します。システムコールが承認されるかどうかを議論するときなど、特定の時点で指定されている場合、通常はほとんどのシステムコールに対して有効なUIDが0であることを意味します。永続的な状態の場合、これは通常、プロセスが有効なUIDを0に設定できることを意味します。これには、実際のユーザーまたは保存されたユーザーUIDが0のプロセスも含まれます。

特定の機能の正確な要件を知りたい場合は、システムの対応する機能のマニュアルを確認してください(デフォルトのカーネルによって異なります)。

TL、DR:状況は重要です。

おすすめ記事