Linux UIDの用途は何ですか
Linux uid の機能はユーザーを識別することであり、各ユーザーには UID があります。Linux には 3 つの UID 識別子があります: 1. RUID、実 UID、実際のユーザー ID; 2. EUID、実効 UID、実効ユーザー ID; 3. SUID、保存セット ユーザー ID、保存セット ユーザー ID。
#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。
Linux uid は何に役立ちますか?
Linux の UID
Linux では、UID はユーザー (alice、bob、root など) を識別するために使用されます。 Android では、UID はアプリケーションまたはシステム サービスを識別するために使用されます
1. Linux の UID
1.1 プロセスごとに 3 つの UID 値
各ユーザーには UID があります。 カーネルは、プロセスごとに 3 つの UID ID を維持します。 3 つの UID 識別子は、RUID (実際の UID、実際のユーザー ID) 、EUID (実効 UID、実効ユーザー ID) 、SUID (保存された Set-user-ID 、保存された) です。設定ユーザーID)。
- RUID: 現在、どのユーザーとしてログインしていますか? 生成するプログラムを実行するプロセスの RUID は、このユーザーの UID です。
- EUID: 現在のプロセスが実際に として実行される UID を参照します。通常の状況では、EUID は RUID と同じですが、プロセスに対応する 実行可能ファイルが SUID 権限 (つまり、rws の ) を持っている場合、プロセスの EUID は RUID の UID## になります。 実行可能ファイルの所有者。 SUID : SUID 権限に関連する EUID のコピー。
実行可能ファイルの passwd を例に挙げます。 パスワード ファイルの権限は次のとおりです。
-rwsr-xr-x
passwd の所有者は root ですが、他のユーザーにも passwd の実行権限があり、passwd 自体には SUID 権限 (s rws) 。 次に、非 root ユーザーが passwd 実行可能ファイルを実行すると、
生成されたプロセスの EUID
は
root ユーザーの UID になります。つまり、この場合、生成されたプロセスは実際に root ユーザーの ID を持つバイナリ ファイルを実行します。 ##SUID 権限は時間に依存することに注意してください。#:
はファイルの実行中のみ有効です 。 2. setuid 関数と setresuid 関数
##2.1 setuid 関数関数プロトタイプ: int setuid(uid_t uid);
Linux では、setuid(uid) 関数の実行手順は次のとおりです。(1) Root 特権プロセス (EUID 0 のプロセス) によって呼び出された場合、プロセスの RUID、EUID、および SUID を設定します。 . は uid で、0 を返します (2) 通常の権限プロセスによって呼び出され、uid が RUID または uid が SUID と等しい場合、プロセスの EUID を uid に設定し、0 (3) を返します) 通常の権限プロセスによって呼び出され、uid が RUID または SUID と等しくない場合、errno を EPERM に設定し、-1 を返します (実行失敗を示します)
上記では、パスワードを実行するプロセス、EUID は次のようになります。パスワードの所有者の UID (root) ユーザーの UID (0)。したがって、ケース(1)に該当します。
su ファイルには
-rwsr-xr-x
権限もあります。したがって、Android では、通常のプロセスが Runtime.getRuntime().exec("su") を通じてシェルプロセスを起動して su を実行する場合も (1) の状況に陥ります。
#2.2 setresuid 関数
参考 https://blog.csdn.net/damotiansheng/article/details/39674115
次の条件のいずれかが満たされると、setresuid が実行されます。
①現在の euidプロセスはルート (AID_ROOT) です。② 3 つのパラメータ ruid、euid、および suid はそれぞれ、現在のプロセスの特定の UID 値に等しいです。 例:現在のプロセスが RUID=100、EUID=0、SUID=300
の場合、元の euid=0 現在のプロセスの RUID=100、EUID=300 であるため、setresuid(200,300,100) を実行できます。 SUID=200
これら 3 つのパラメータはすべて現在の UID の 1 つであるため、setresuid(200,300,100) は実行できます。
ただし、400 が現在の UID のいずれにも等しくないため、setresuid(100,200,400) は実行できません。 。
- 3. getuid 関数と geteuid 関数
getuid は現在のプロセスの - RUID を返します
geteuid は を返します現在のプロセスの EUID
関連する推奨事項:「Linux ビデオ チュートリアル
」
以上がLinux UIDの用途は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、パターンマッチング、ファイル検索、テキスト操作、グレップ、SED、awkなどのツールの詳細、ファイル検索、テキスト操作のためにLinuxで正規表現(Regex)を使用する方法について説明します。

この記事では、Linuxシステムのパフォーマンスを監視するためにTop、HTOP、およびVMSTATを使用して、効果的なシステム管理のための独自の機能とカスタマイズオプションを詳述することについて説明します。

この記事では、Google Authenticatorを使用してLinux上のSSH用の2要素認証(2FA)のセットアップ、インストール、構成、およびトラブルシューティング手順の詳細に関するガイドを提供します。 Enhanced Secなど、2FAのセキュリティ利益を強調しています

この記事では、SelinuxとApparmor、Linuxカーネルセキュリティモジュールを比較して、必須のアクセス制御を提供します。 それは彼らの構成を詳述し、アプローチの違い(ポリシーベースとプロファイルベース)と潜在的なパフォーマンスへの影響を強調します

この記事では、Linuxシステムのバックアップと復元方法について詳しく説明しています。 フルシステムイメージのバックアップとインクリメンタルバックアップを比較し、最適なバックアップ戦略(規則性、複数の場所、バージョン、テスト、セキュリティ、回転)、およびDAについて説明します

この記事では、LinuxのSudo特権を管理する方法について説明します。重要な焦点は、 /etc /sudoersの安全性とアクセスを制限することです。

この記事では、FirewalldとIptablesを使用したLinuxファイアウォールの構成を比較します。 firewalldは、ゾーンとサービスを管理するためのユーザーフレンドリーなインターフェイスを提供しますが、iptablesはNetFilter FRAのコマンドライン操作を介して低レベルの制御を提供します

記事では、APT、Yum、およびDNFを使用してLinuxでソフトウェアパッケージの管理を行い、インストール、更新、および削除をカバーしています。さまざまな分布に対する機能と適合性を比較します。
