Unixでは、rootは権限を持つユーザーですか?

Unixでは、rootは権限を持つユーザーですか?

私は答えをある程度知っていますが、私が知りたいのは実装の詳細です。ルートがログインしていて権限が000のファイルがあるとします。その後、ルートはファイルに書き込んで読み取ることができます。しかし、私の質問はこれがどのように達成されるかです。一般的なルール(所有者、グループ、その他、rwx)に従いますか、それともシステムがユーザーを見てルートなので、すべてのファイルに対して読み取り、書き込み、実行権限があると言いますか?

私がこの質問をしたのは、Unixでファイルやユーザーを模倣するRest-APIアプリケーションを書いているからです。 /gauss/ iris URL は Unix ディレクトリとして扱われます。https://github.com/orgesleka/unix-acl-sql)。今私の質問は、rootに権限があることを一般的なUnix ACLから推測できますか、それともこれを「ハードコーディング」する必要がありますか?

ベストアンサー1

ACLメカニズムを使用してこれを推論することはできません。バイパスをコーディングする必要があります。

一部のオペレーティングシステムのカーネルコードベースでは、次のものがあります。

if(捜索者())
あるいは、どこでも同様のテストがあります。 (OpenBSDの例) 該当プロセスの実効ユーザIDが0かどうかをテストする関数。

他のオペレーティングシステムのカーネルコードベースでは、ビットフラグセットのチェックに置き換えられていることがわかります。特権資格情報セットが所有します。 (FreeBSDの例) ただし、同じ考慮事項が適用されます。権限がある場合は、アクセスチェックをバイパスし、明示的なバイパスをコーディングする必要があります。

どちらのモデルも、特にWWW指向コードをコピーするためにコピーする意図はありません。これらの2つのアイデア(単一のユニークなマジックユーザーIDのアイデアとユーザーアカウントが持つことができるマジックトークンのアイデア)をデザインとコードで維持するのが最善です。

同様に、3桁の権威モデルはコピーする価値のあるモデルではありません。フラグが既存の3ビットモデルのようにデュアルミッションを実行しないNFSスタイルのACLを見てください。彼らはこれまで何十年もの間存在してきました。

おすすめ記事