このコマンドを使用してプロセスの所有者を確認できます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権限に切り替えることができない場合、または階層内のプロセスに関連している場合、それが少ない場合はプロセスを終了/停止/再開できません。