Sudoチケットとそれ以降の非Sudoピアプロセス

Sudoチケットとそれ以降の非Sudoピアプロセス

システムにsudoローカルでタイムアウトが設定されているため、sudo一部の端末で実行して一度認証すると、10分間再認証する必要がないとします。

これにより、プロセスがプロセスの子として実行されるのが効率的ですか?直接sudo使用せずに呼び出されるsudo(したがって子供ではない兄弟姉妹実行中のプロセスそして sudo)私の権限をrootにアップグレードできますか?

具体的な例として端末で実行しているとしましょう。

sudo echo "hi"
other_process

プロセスはをecho使用して実行されていますが、そうではありません。たとえば、前の呼び出しに関連付けられている10分の期限切れのsudoチケットを使用して、?を介して子プロセス自体を開始できます。sudoother_processother_processsudosudo

答えが「はい」の場合、これは制限時間内に実行されるすべてのプロセスに非常に注意する必要があることを意味しますsudo。信頼できないプロセスを実行することは、現在のユーザーのサンドボックスに保持するのと同じですが、既存のother_processチケットを使用できる場合はsudorootに昇格できると考えることもできます。

sudo端末から直接呼び出すのではなく、端末で実行されているスクリプトから呼び出すと答えが変わりますか?

たとえば、次のようにします。

script.sh
other_process2

script.shそこにこのような行がある場合、後でsudo echo "inside script"スクリプトによって開始された他のプロセスはsudoチケットを使用して権限をrootに引き上げることができますか?スクリプトが完了したらどうなりますか?チケット1は、実行中の端末の他のプロセスscript.shで引き続き使用できますか?sudo


1これらはもはや兄弟プロセスと同じではありませんが、「叔母」または「おじさん」プロセス(親プロセスの兄弟)です。

ベストアンサー1

はい、sudoチケットはその端末で実行されているすべてのプロセスで動作します(少なくともユーザーとして)。これはテストが簡単です。 1つだけを作るtest.sh

#!/bin/sh

sudo apt-get check

それから:

$ sudo apt-get check
[sudo] password for anthony: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done

$ ./test.sh 
Reading package lists... Done
Building dependency tree       
Reading state information... Done

通常、特に自分のユーザーとして信頼できないプログラムを実行することはお勧めできません。そして、sudoチケットがある端末ではこれを行うべきではありません。信頼できないプログラムを実行する必要がある場合は、セキュリティバリアを設定する必要があります(少なくとも他のユーザー、より良い仮想マシン、または少なくともコンテナ - 信頼できないプログラムを実行するためのセキュリティサンドボックスを設定するのは簡単ではありません)。

おすすめ記事