我正在尝试以受限环境中的其他用户身份运行Rscript
,而用户无法访问/tmp
。
当Rscript
创建tmp文件时,它需要访问/tmp
。所以我想如果我能告诉Rscript
更改tmp目录并使用我指定的目录。
在文档中提到Rscript
查看$TMPDIR
环境变量以设置其tmp
目录
以下是传递环境变量的所有失败路径。
ATTEMPT-1: runuser -l MYUSER -c "export TMPDIR=/SOME_DIR && echo $TMPDIR"
ATTEMPT-2: runuser -l MYUSER TMPDIR=/SOME_DIR -c "echo $TMPDIR"
ATTEMPT-3: runuser -l MYUSER TMPDIR=/SOME_DIR -c "echo $TMPDIR"
ATTEMPT-3: runuser -l MYUSER -c "Rscript --TMPDIR=/SOME_DIR test.r " --> Random stuff
所有尝试失败。
我无法离开runuser
。
任何帮助将不胜感激
答案 0 :(得分:0)
我没有尝试过你的例子,但是没有一个能够工作,因为$ TMPDIR已经被调用的shell取代了。那么,你的
runuser -l MYUSER -c "export TMPDIR=/SOME_DIR && echo $TMPDIR"
变为
runuser -l MYUSER -c "export TMPDIR=/SOME_DIR && echo "
如果TMPDIR为空或未设置。尝试使用单引号来避免这种情况:
runuser -l MYUSER -c 'export TMPDIR=/SOME_DIR && echo $TMPDIR'
应该会产生输出/SOME_DIR
。