如何在使用runuser时导出变量

时间:2017-11-28 15:22:19

标签: r linux selinux rscript

我正在尝试以受限环境中的其他用户身份运行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

任何帮助将不胜感激

1 个答案:

答案 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