【发布时间】:2019-10-15 23:07:16
【问题描述】:
我尝试在需要sudo 访问权限以创建目录的路径上使用dir.create。但我似乎无法从我从浏览器访问的 Rstudio 服务器实例执行此操作,即使我使用 sudo rstudio-server start 启动了 Rstudio 服务器。
有没有办法赋予我的 Rstudio 实例sudo 权力?
【问题讨论】:
-
xiaodai,我想不出比给 R(在 RStudio Server 内)
sudo访问权限更好的方法来让大量好奇的脚本小子不受限制地访问您的底层操作系统。 (说一个更好的方法:也许你应该询问你正在尝试做的实际事情......尝试用sudo解决它要么(a)绝对是错误的方式,要么(b)表明一个大块是从服务器中丢失。) -
顺便说一句:使用
sudo运行服务器应该没有任何意义:需要公开低于 1024 的端口的服务器通常需要 root 访问权限,有时它们需要 root 访问其他服务/资源......但作为一旦他们得到他们需要的东西,服务器开发中的“最佳实践”就是在您不需要它们时立即放弃特权。对于任何“分叉”(进程方面)的东西,这通常意味着子进程不需要或接收大部分或任何特权访问。 -
这很好奇,因为私有服务器上的 SSD 安装在
/上,所以要使用它,我需要写入它。这就是我需要sudo访问权限的原因。 -
在前面,我没有一个简单的答案给你,但请理解我不是随便说的:沙盒和进程的划分(服务器或其他)是非常重要的事情安全性,因此服务器应用程序通常会非常努力地专门禁止对其控制范围之外的目录的访问。在
shiny中,有一些方法可以在闪亮应用程序本身内写入本地文件系统,但除此之外的任何东西都会有风险。而且由于这确实是 R 和 javascript 的融合,因此可能潜伏着未被发现的安全漏洞,所以......偏执是好的。 -
因此,虽然之前的声明对您来说可能并不陌生(或者可能是),但请知道您无法访问它的原因可能是以下之一:(1)您没有将 RStudio Server 配置为认为用户/应用程序写入该目录是安全的;或 (2) 底层操作系统还不知道这一点。如果操作系统知道但 RStudio 不允许,那么它可能是一个功能请求 ...
标签: r rstudio rstudio-server