2017-02-09 17 views
1

ルート所有者を持つサーバーファイルシステムにファイルをアップロードする明示的なAPIがあります。私は、例えば、それをアップロードすると、ファイルに所有者と権限を追加する方法はあります:所有者:私は、アクセス:644ファイルのアクセス許可をエクスプレスとノードで追加する

私は保存するためにmulterを使用して、この

router.post('/', 

imageUpload.single('file'), 

function (req, res) { 
    res.set('location', encodeURI(urlJoin(UPLOAD_URL, req.file.filename))) 
    res.status(req.file.isCreation ? 201 : 204).send() 
} 
) 

のような私のルートルックrootとしてスクリプトを実行する場合、ファイル

const imageUpload = multer({ 
storage, 
}) 

答えて

1

あなたはファイルの所有権を変更することができます唯一の方法はある(またはあなたはそれを行うにはSUIDルートヘルパープログラムを書く場合)。これはもちろん、OSのアクセス権について話している場合です。あなたのバックエンドは、クッキー、seesion id、いくつかのヘッダーのトークン、またはリクエスト内の何らかのものに基づいて、ファイルを提供することもできます。しかし、root権限を持たないファイルシステムのファイルの所有権を変更することはできません。それが本当に必要なものかどうかを検討してください。

コメントに書いたとおりにスクリプトを実行する場合は、fs.chownを使用してオーナーを変更し、fs.chmodを使用して権限を変更することができます。

参照してください:

+0

が実際にアプリケーションがrootの所有者によって実行されますが、私は一度 – kyserslick

+0

@kyserslickをファイルシステムにアップロードされた別の所有者にファイルを関連付ける必要がありますもしそうなら、あなたはfs.chmodとfs.chownを使うことができます - 私の更新された答えを見てください。 – rsp

+0

はい、私は、tkxが見つかりました。 – kyserslick

関連する問題