sudo -u $USERとroot以外のユーザーとしてのsu - $USERの違い

sudo -u $USERとroot以外のユーザーとしてのsu - $USERの違い

最初のものが機能せず失敗するconda理由2番目の作品はどうですか?

$ 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

私は仕事をします。@クサラナンダさんのコメントはコミュニティの回答に含まれているため、この質問に対する回答は決して解決されません。

どちらのコマンドでも、値は実際に呼び出しを試みるシェルではなく、呼び出しを行う$PATH対話型シェルから取得されます。これは、コマンドの二重引用符(最初のコマンド)と二重引用符(2番目のコマンド)が原因で発生します。 2番目のコマンドは(コマンドで終わる)も実行しません。試してみたり、似たようなことをしたい場合があります(自分のコンピュータにその機能がないため、正しくテストできません)。susudocondacondasudosudo&&sudo -u "$NB_USER" sh -c 'echo $PATH && conda --version'sudo

関連情報