私はLinuxの権限に関する記事を読んでいましたが、そこで言及されたことがないことがわかりました。どのように動作するか知りたいです。
状況例:read_file.out
ファイルを読み取り、~/file.txt
内容を印刷するバイナリファイルを実行します。これはstdout
、プロセスを作成したユーザーおよび/またはユーザーの身元に基づいてシステムが読み取ることができると判断するプロセスを生成します。~/file.txt
EUID
EGID
この値は正確にどこに保存されていますか?システムで
「」と言う場所はどこですか?EUIDは1002なので、ファイルを読み取ることができます。「
または
」あなたのEUIDは1003なので読むことができず、あなたはこのファイルにアクセスできるグループのメンバーではないので、読み取ることはできません。「?
私は疑似ファイルシステムに/proc/<pid>/
特に/proc/<pid>/stat
(/proc/<pid>/status
より良い読み取りバージョンstat
)ファイルがあることを発見しました。システムが権限を決定するファイルですか、それともこのコマンドのソースとしてのみ使用される「情報」ファイルですかps
?
回答ありがとうございます。
答え1
カーネルデータ構造から。の仮想ファイルは/proc/<pid>/
単にそのファイルのビューです。これでソースコードを見ることができますが、実際に動作するかどうか疑問です。各プロセスには、UIDとGIDのすべてのフィールドと、補助グループテーブルと他のプロセス固有のデータを含む単純なC構造があります。