Какой пользователь запускает R на стороне сервера OpenCPU? - PullRequest
0 голосов
/ 12 декабря 2018

Я неопытен в использовании opencpu в качестве сервера, поэтому я попытался найти ответ на этот вопрос в документации, но не нашел ответов на этот вопрос.Тем не менее, это кажется мне достаточно базовым с точки зрения разрешений и аутентификации, так что я предполагаю, что это где-то задокументировано, и я просто не нашел его .... У меня есть вопрос относительно пользователей и разрешений при выполнении запроса к OpenCPUсервер.Я написал пакет R, который я хочу разместить на сервере OpenCPU.До сих пор мне удалось без проблем установить сервер OpenCPU, и он прекрасно работает для большинства функций в моем пакете R.Однако одна функция использует Sys.getenv('USERNAME') для определения пользователя, который запускает код.Но когда код R запускается клиентским запросом, я понятия не имею, как определить пользователя.

Мин. Пример: Предположим, у меня есть функция "myFun", включенная в мой пакет R с именем "MyRPkg", например:

MyRPkg/R/myFun.R:

myFun(v){
  return(Sys.getenv('USERNAME'))
}

Когда я установил пакет (в «корневой» R-библиотеке) и у меня запущен сервер OpenCPU, чем я могу получить доступ к пакету и вызвать егофункционировать с помощью запроса POST, например:

SERVERNAME/ocpu/library/MyRPkg/R/myFun/json

и получить пустую строку в качестве ответа.

[""]

Как выяснить, что происходит на стороне сервера, с точки зрения которогопользователь "запускает" код R и возможно ли это настроить?Сначала я думал, что пользователь должен использовать «data-www», который является настройкой Apache по умолчанию в моей системе.Не знаете, на каком уровне установлен пользователь: Apache, rApache или opencpu, но я предполагаю, что он должен быть настраиваемым на уровне OpenCPU?

Система, на которой работает сервер, является более или менее Linux Ubuntuсервер.

1 Ответ

0 голосов
/ 12 декабря 2018

Система OpenCPU работает поверх вашего системного сервера Apache2 по умолчанию.Какой uid используется для запуска демона apache2, настроен в вашей системе.По умолчанию это www-data в Debian / Ubuntu.Вы, вероятно, можете переопределить это где-нибудь.

...