sudo -u $USER 和 su - $USER 作为非 root 用户之间的区别

sudo -u $USER 和 su - $USER 作为非 root 用户之间的区别

为什么第一个不起作用并且无法conda小路第二个作品呢?

$ su - $NB_USER -c "echo $PATH && conda --version"
/opt/conda/condabin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-sh: 1: conda: not found
$ sudo -u $NB_USER -- echo $PATH && conda --version
/opt/conda/condabin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
conda 4.9.2

答案1

我正在做@Kusalananda的评论纳入社区答案,这样这个问题就不会得不到解答。

在这两个命令中,该$PATH值来自调用 和 的交互式 shell ,susudo不是来自实际尝试调用 的 shell conda。这是由于命令的双引号(第一个命令)和非引号(第二个命令)引起的。在第二个命令中,您甚至不执行condawith sudosudo命令以 结尾&&)。您可能想尝试sudo -u "$NB_USER" sh -c 'echo $PATH && conda --version'或类似的东西(我的机器上没有,sudo所以无法正确测试)。

相关内容