http://onteria.wordpress.com/2011/05/31/dropping-privileges-using-process-setuid-in-node-js/で説明されているスキームに従い、ノードをルートとして起動してからダウングレードします。ユーザー。このようにして、プロキシを必要とせずに80でリッスンできます。かなり標準的なもの。プロセスを管理するための起動スクリプトがあります(Ubuntuサーバー)。
upstartスクリプトは、stdout / errをログファイル(rootが所有する)にリダイレクトします。内部的には、winstonを使用してコンソールとファイル(これもrootによって所有されます)にログを記録しています。
私の完璧で幸せな世界では、ダウングレードされたユーザーにログファイル(リダイレクトされたstdout / errとwinstonが作成したものの両方)を透過的にchownすることができます。ノードアプリ内からsetuidしたときに、(素朴に)それらをchownしようとしました。これは機能しましたが、二度と書き込まれないことを意味しました。
どうすればこれを達成できますか?これは可能ですか、それともrootが所有する(少なくともいくつかの)ログファイルを使用する必要がありますか?
どうもありがとう!