I / Oがリダイレクトされるファイルを作成/書き込みするプロセス/プログラムは何ですか?

I / Oがリダイレクトされるファイルを作成/書き込みするプロセス/プログラムは何ですか?

SELinuxを学びながら、多くのfcontext情報をディレクトリのファイルにダンプsemanage fcontext -l > fcontext.txtしました。/root興味深い結果はfcontext.txt作成されましたが、サイズがゼロであることです。

私は尋ねた。#fedora-selinuxfcontext.txtIRCチャネルであるFedora QAでは、SELinuxコンテキストタイプをsemanage_tmp_t

しかし、まだ私を混乱させているのは次のとおりです。

リダイレクトされたファイルにstdoutを作成/記録するプロセス/プログラムは何ですか? (プロセス/プログラムにSELinuxターゲットポリシーが適用されるように)

  • バッシュシェル?/bin/bash
  • それともsemanage(Pythonスクリプト)ですか?/usr/sbin/semanage
  • または通訳 - Python?/usr/bin/python

I / Oリダイレクトはプログラム自体ではなくシェル(正しいですか?)によって制御されるため、bashシェルでなければならないと思います。したがって、 semanage/python はファイルを直接生成しません。

答え1

あなたは正しいです。入出力ストリームのリダイレクトはシェルによって行われます。

より詳しく説明すると、シェルを介してコマンドを実行すると、次のプロセスが実行されます。

  1. シェルフォーク新しいプロセスを作成します。

  2. 新しく作成されたシェル(「サブ」シェル)はリダイレクトを適用します。出力先(または入力ソース)として指定されたファイルを開き、それを新しいSTDOUT(またはSTDIN)ストリームに設定します(次を使用)。 デュープ2システムコール)。

  3. 「サブ」シェルは、以下を使用して実行を要求したコマンドを実行します。 実行(2)シェルプロセスを新しいプログラムに置き換えるためのシステムコールです。

関連情報