いくつかのコマンドの「setuidコピーを作成する方法」


0

私は本How Linux Worksを読んでいますが、理解できないことがあります:

通常のLinuxシステムでは、ほとんどのプロセスに同じeffective user IDとがありreal user IDます。デフォルトではps、他のシステム診断プログラムにはが表示されeffective user IDます。システム上の有効なユーザーIDと実際のユーザーIDの両方を表示するには、これを試してください。ただし、システム上のすべてのプロセスで2つのユーザーID列が同一であっても驚かないでください。

$ ps -eo pid,euser,ruser,comm

列に異なる値を表示できるように例外を作成するには、sleep コマンドのsetuidコピーを作成し、コピーを数秒間実行してpsから、コピーが終了する前に別のウィンドウで上記のコマンドを実行してみてください。

著者は言った:try experimenting by creating a setuid copy of ...しかし、sleepコマンドのsetuidコピーを作成する方法?ありがとう。

回答:


1

最初に、実行可能な場所にコピーを作成します(つまり、マウントされたファイルシステムnoexecは修飾されません)。これは/tmp/私の例です。

sudo cp /bin/sleep /tmp/

(以前sudoはコピーがroot最初から属していることを確認していました。これはsudo chown …後で私を救います)。次のコマンドは、ファイルのsetuidビットを設定します

sudo chmod u+s /tmp/sleep

次に、通常のユーザーとしてバックグラウンドで実行します。

/tmp/sleep 300 &

次に、次の出力を確認しますps

ps -eo pid,euser,ruser,comm | grep sleep

結果はeuser、ファイルの所有者をruser指し、実行するユーザーを指します。

注:setuidで遊んでいる間は、スクリプトでは機能しないことに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.