SailsJS шкипер, загружающий файлы как root, как мне загрузить его как владельца приложения?
Я использую шкипер для загрузки изображений, и изображения продолжают загружаться как принадлежащие пользователю root, а не желаемый результат. Приложение sails находится в подпапке домашнего каталога пользователя X, в которой все файлы принадлежат пользователю X. Я запускаю "sudo sails lift", чтобы запустить приложение, поэтому, возможно, sudo как-то с этим связана.
Вот код для загрузки:
req.file('images').upload(function ( error, files ) {
if ( error ) {
return res.serverError( error );
}
return res.json({
message: files.length + ' file(s) uploaded successfully!',
files: files
});
});
Как я могу убедиться, что файлы загружены как пользователь X?
1 ответ
Паруса, а точнее Node.js, как и любой веб-сервер, загружают файл с владельцем, который запустил сервер. Вы начинаете паруса с sudo, вот почему. Если вы хотите изменить это поведение, у вас есть 2 варианта: либо запустить паруса с нужным пользователем, либо сменить владельца после загрузки с помощью функции chown узла fs.