プロセスに所有者がいる可能性がありますか?どういう意味ですか?

プロセスに所有者がいる可能性がありますか?どういう意味ですか?

このコマンドを使用してプロセスの所有者を確認できますps。これは、他のユーザーがプロセスを実行/終了/再開できないという意味ですか?

答え1

読むバウチャー(7)フォーク(2)実行(2)。これフォークシステムコールプロセスを作成する方法です(最近ではfork通常、次の方法で達成されます)クローン(2)ただし、実装の詳細と見なすことができます。)システムコールの実行それだけです。実行可能ファイルプログラムが始まります。覚えておいてください、すべては特定のプロセスを通して行われます。システムコール(に記載システムコール(2))。最初のプロセス(内部にまたはシステム)は起動時にカーネルによって魔法のように始まりました。別のプロセスが開始されました。フォーク(2)。最新のLinuxカーネルは時々(まれに)いくつかの特別なプロセス(例えば)または/sbin/hotplugカーネルスレッド(例えばkworker... kswapd)を魔法のように始めます。

では、毎回プロセス(およびすべてのファイル)には一部の所有者があります(技術的にUID、負でない小数字)、およびグループ(gid)。 0 uid は root で、追加の権限があります。

次の内容もお読みください。設定値(そしてセスルイド(2)...) これはトリッキーです。

これは、他の所有者がプロセスを実行できないという意味ですか?

プロセスはすでに実行中であるため(アイドル状態またはスタンバイ中)、誰も再実行できません。プロセス(動的項目)とプログラム(実行ファイル)を混同しないでください。文書、しばしば非常に低い周波数形式)を実行します。

特定のプログラム(例/bin/bash:)は以下にあります。一部プロセス。多くの実行可能ファイルは、そのファイルを実行するプロセスなしで(特定の瞬間)ディスクに残ります。

Linuxでは、工程(5)プロセスの状態に関する情報をカーネルに照会するのに非常に便利です。例cat /proc/$$/statusを見てくださいcat /proc/self/maps。また、見ることができますpgrep(1)参考(1)タワー(1)

各プロセスには独自のプロセスがあります。仮想アドレス空間、それファイル記述子時計、所有タスクリスト、(そしてしばしば複数、望むより並列スレッド(7))など...

これは、他の所有者がプロセスを実行/終了/再開できないことを意味しますか?

プロセスの実行には意味がありません。すでにラン)。ただし、pid 1234プロセスの実行可能ファイルは/proc/1234/exeシンボリックリンクとして提供されます。実行(2)- しかし、そうかもしれませんしてはいけない-.適用可能な権限ルールexecve

到着殺す(2)プロセスは通常同じuidを持つ必要があります。ただし、文書には次のように記載されています。

  For a process to have permission to send a signal, it must either be
   privileged (under Linux: have the CAP_KILL capability in the user
   namespace of the target process), or the real or effective user ID of
   the sending process must equal the real or saved set-user-ID of the
   target process.  In the case of SIGCONT, it suffices when the sending
   and receiving processes belong to the same session. 

到着止めるSIGSTOP(またはSIGTSTP)信号を使用するプロセス殺す(2)。バラより信号(7)

到着また覆うプロセスを停止するには、このSIGCONT信号を使用します。

答え2

所有者は通常、プロセスを開始したユーザーです。他のユーザーがコマンドを実行できますが、プロセスは異なります。

これは、他の所有者がプロセスを実行できないという意味ですか?

他の所有者はいません。プログラム(実行ファイル)とプロセス(実行中のプログラム)を混同しないでください。

これは、他の所有者がプロセスを実行/終了/再開できないことを意味しますか?

単一の所有者がすでにプロセスを開始しています。他に言及する場合ユーザー、所有者とは異なります。

ルート、つまり0に対応するユーザーはuidすべての権限を持ちます。オペレーティングシステムの観点からは、同じコンテンツを共有する他のユーザーuidは同じユーザーであるため、プロセスに対するすべての権限を持っています。

sudo他のuidを持つユーザーは、同様のコマンドを使用して所有者またはroot権限に切り替えることができない場合、または階層内のプロセスに関連している場合、それが少ない場合はプロセスを終了/停止/再開できません。

関連情報