目次
1. Linux の UID" > 1. Linux の UID
1.1 プロセスごとに 3 つの UID 値" >1.1 プロセスごとに 3 つの UID 値
関数プロトタイプ: int setuid(uid_t uid);" >関数プロトタイプ: int setuid(uid_t uid);
を返します (2) 通常の権限プロセスによって呼び出され、uid が RUID または uid が SUID と等しい場合、プロセスの EUID を uid に設定し、0 (3) を返します) 通常の権限プロセスによって呼び出され、uid が RUID または SUID と等しくない場合、errno を EPERM に設定し、-1 を返します (実行失敗を示します) " > (1) Root 特権プロセス (EUID 0 のプロセス) によって呼び出された場合、プロセスの RUID、EUID、および SUID を設定します。 . は uid で、0 を返します (2) 通常の権限プロセスによって呼び出され、uid が RUID または uid が SUID と等しい場合、プロセスの EUID を uid に設定し、0 (3) を返します) 通常の権限プロセスによって呼び出され、uid が RUID または SUID と等しくない場合、errno を EPERM に設定し、-1 を返します (実行失敗を示します)
次の条件のいずれかが満たされると、setresuid が実行されます。" >次の条件のいずれかが満たされると、setresuid が実行されます。
ホームページ 運用・保守 Linuxの運用と保守 Linux UIDの用途は何ですか

Linux UIDの用途は何ですか

Mar 13, 2023 am 09:40 AM
linux uid

Linux uid の機能はユーザーを識別することであり、各ユーザーには UID があります。Linux には 3 つの UID 識別子があります: 1. RUID、実 UID、実際のユーザー ID; 2. EUID、実効 UID、実効ユーザー ID; 3. SUID、保存セット ユーザー ID、保存セット ユーザー ID。

Linux UIDの用途は何ですか

#このチュートリアルの動作環境: 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 のコピー。
1.2 バイナリ ファイルの SUID 権限

実行可能ファイルの 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

# #関数プロトタイプ: int setresuid(uid_t ruid, uid_t euid, uid_t suid);

次の条件のいずれかが満たされると、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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

パターンマッチングにLinuxで正規表現(正規表現)を使用するにはどうすればよいですか? パターンマッチングにLinuxで正規表現(正規表現)を使用するにはどうすればよいですか? Mar 17, 2025 pm 05:25 PM

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

TOP、HTOP、VMSTATなどのツールを使用してLinuxのシステムパフォーマンスを監視するにはどうすればよいですか? TOP、HTOP、VMSTATなどのツールを使用してLinuxのシステムパフォーマンスを監視するにはどうすればよいですか? Mar 17, 2025 pm 05:28 PM

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

LinuxでSSHに2要素認証(2FA)を実装するにはどうすればよいですか? LinuxでSSHに2要素認証(2FA)を実装するにはどうすればよいですか? Mar 17, 2025 pm 05:31 PM

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

Linuxのセキュリティを強化するようにSelinuxまたはApparmorを構成するにはどうすればよいですか? Linuxのセキュリティを強化するようにSelinuxまたはApparmorを構成するにはどうすればよいですか? Mar 12, 2025 pm 06:59 PM

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

Linuxシステムをバックアップして復元するにはどうすればよいですか? Linuxシステムをバックアップして復元するにはどうすればよいですか? Mar 12, 2025 pm 07:01 PM

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

sudoを使用して、Linuxのユーザーに高い特権を付与するにはどうすればよいですか? sudoを使用して、Linuxのユーザーに高い特権を付与するにはどうすればよいですか? Mar 17, 2025 pm 05:32 PM

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

FirewalldまたはIptablesを使用してLinuxでファイアウォールをセットアップするにはどうすればよいですか? FirewalldまたはIptablesを使用してLinuxでファイアウォールをセットアップするにはどうすればよいですか? Mar 12, 2025 pm 06:58 PM

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

パッケージマネージャー(apt、yum、dnf)を使用してLinuxのソフトウェアパッケージを管理するにはどうすればよいですか? パッケージマネージャー(apt、yum、dnf)を使用してLinuxのソフトウェアパッケージを管理するにはどうすればよいですか? Mar 17, 2025 pm 05:26 PM

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

See all articles