システムにsudo
ローカルでタイムアウトが設定されているため、sudo
一部の端末で実行して一度認証すると、10分間再認証する必要がないとします。
これにより、プロセスがプロセスの子として実行されるのが効率的ですか?直接sudo
使用せずに呼び出されるsudo
(したがって子供ではない兄弟姉妹実行中のプロセスそして sudo
)私の権限をrootにアップグレードできますか?
具体的な例として端末で実行しているとしましょう。
sudo echo "hi"
other_process
プロセスはをecho
使用して実行されていますが、そうではありません。たとえば、前の呼び出しに関連付けられている10分の期限切れのsudoチケットを使用して、?を介して子プロセス自体を開始できます。sudo
other_process
other_process
sudo
sudo
答えが「はい」の場合、これは制限時間内に実行されるすべてのプロセスに非常に注意する必要があることを意味しますsudo
。信頼できないプロセスを実行することは、現在のユーザーのサンドボックスに保持するのと同じですが、既存のother_process
チケットを使用できる場合はsudo
rootに昇格できると考えることもできます。
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チケットがある端末ではこれを行うべきではありません。信頼できないプログラムを実行する必要がある場合は、セキュリティバリアを設定する必要があります(少なくとも他のユーザー、より良い仮想マシン、または少なくともコンテナ - 信頼できないプログラムを実行するためのセキュリティサンドボックスを設定するのは簡単ではありません)。