我有一台安装了Microsoft R Open的服务器.我是否可以限制System()命令的使用,以便用户无法从R中调用shell命令?
如果这是不可能的,那是因为Microsoft R Open特定的原因,还是我要求的任何R实现根本不可能的?
从安全角度来看,我认为最佳做法是创建一个只拥有所需权限的用户帐户(即不是管理员,没有不适当的读/写等),然后以该用户身份运行R.
评论中掩盖功能的聪明建议将是一个修补程序,但对于阻止任何知识渊博的人利用它几乎没有作用.OTOH也许你可以将两者结合起来.
这是一个关于"黑客"如何打败功能掩盖的简单例子:
system <- function(x) {print("I am masked!")}
system()
[1] "I am masked!"
rm(system); print("Take off the mask!")
[1] "Take off the mask!"
system() # not masked now
Error in system() : argument "command" is missing, with no default
Run Code Online (Sandbox Code Playgroud)
评论中的某个人询问了非特权命令ls.如果您还想禁用非特权命令,ls我可能会采用基于安全性/用户的方法然后