【问题标题】:How to export Variable when using runuser使用runuser时如何导出变量
【发布时间】:2018-05-12 02:45:32
【问题描述】:

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

任何帮助将不胜感激

【问题讨论】:

    标签: r linux selinux rscript


    【解决方案1】:

    我没有尝试过您的示例,但没有一个可以工作,因为 $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

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      相关资源
      最近更新 更多