如何在会话启动时获取密码

时间:2018-08-15 15:58:16

标签: r passwords rstudio

当前我在哪里工作,要获得授予对项目工作目录的访问权限的过程很复杂(要求提交密码)。我们有一系列脚本来授予访问权限,并希望将它们放入.Rprofile文件中,以便它们在Rstudio中加载特定项目时自动执行。但是,在.Rprofile中如何使用户提交密码到代码时,我们遇到了问题。作为参考,我们主要在Rstudio-Server上工作。

我们尝试将getPass::getPass()放在.Rprofile中,但这没有任何输入,只是导致了:

WARNING: your platform is not supported. Input is not masked!

类似地,我们尝试使用rstudioapi::askForPassword(),但这只会导致

Error: RStudio not running

是否存在使用户在.Rprofile中输入密码的正确方法,或者在Rstudio完成加载后是否还有另一个钩子用于运行代码?

1 个答案:

答案 0 :(得分:0)

也许这可以帮助某人

像下面一样创建rscript

if(Sys.getenv('PWD') == ""){
    cat('Wellcome!\n')
    pwd <- readline(prompt="Please, insert your password:")
    Sys.setenv(PWD = pwd)
    rm(pwd)
    cat("\014")
    cat("Right, everthing done for you, ", Sys.getenv('USER'), "!\n", sep='')
}

并像Rprofile一样在"source('/usr/local/bin/rscript.R')"上获取它

用户将获得欢迎的消息,然后输入密码,脚本会将其保存为R环境变量('PWD'),供以后使用。