0

だから私は最初のリリースに近づいているパッケージ マネージャーを書いています。次のコード フローを検討してください。

# Some code that needs root privalages. Database syncing, etc.
...
...
# Building packages. *Does not require root.* 
# In fact, this is a call to a child process through the shell and it will complain if called by root.
...
...
# Copying built packages to root-owned locations. Needs root.
# Installing packages. Needs root.

上記のコピー部分はネイティブコードで行われ、プログラム全体が最初からルート権限で実行されていないと失敗するため、最初はsudoでプログラムを実行できるようにしたいと思います。ただし、ビルド プロセスはroot として実行する必要はありません。私の質問は本質的に、ビルドを行う子プロセスを呼び出す前にルート権限を「拒否」または「停止」する方法はありますか? 制御が親に戻ったときに、実際のインストールが妨げられずに行われるように、ルート状態がまだ有効であるような方法である必要があります。

よろしくお願いします。

また、ここにレポがあります。誰もが興味を持っています。

4

1 に答える 1

0

そのため、プログラムを sudo で実行すると、環境変数 SUDO_USER が作成されるようです。それを読むことで、子プロセスをsu -c.

于 2012-06-12T22:18:03.540 に答える