如何将用户环境变量复制到sudo环境变量

时间:2019-06-28 17:09:07

标签: linux ubuntu environment-variables sudo

我是Linux的新手。目前,我正在使用Ubuntu 18.04 LTS。其实我有问题。我使用rbenv安装了Ruby。当我运行诸如rbenv install 2.6.3gem install bundler之类的命令时。我没有像sudosudo rbenv install 2.6.3那样使用sudo gem install bundler

现在的问题是,当我在/var/www/mydirectory/code的{​​{1}}中运行命令时。然后我得到以下输出

bundle install --deployment --without development production

如果我执行There was an error while trying to write to `/var/www/mydirectory/code/.bundle/config`. It is likely that you need to grant write permissions for that path. ,则会得到以下输出结果

sudo bundle install --deployment --without development production

对于命令sudo: bundle: command not found 。我得到以下输出

which bundle

现在,如果我键入命令/home/NHLSAdmin/.rbenv/shims/bundle 。然后我得到以下输出

echo 'echo $PATH' | sh

如果我键入命令/home/NHLSAdmin/.rbenv/plugins/ruby-build/bin:/home/NHLSAdmin/.rbenv/shims:/home/NHLSAdmin/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 。然后我得到以下输出

echo 'echo $PATH' | sudo sh

如我所见,对于sudo而言,该路径不包含/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin /home/NHLSAdmin/.rbenv/shims/bundle之类的目录。这就是/home/NHLSAdmin/.rbenv/plugins/ruby-build/bin无法找到它的原因。

现在,我想使这些变量可用于sudo。实际上,我将使用一些自动化工具来运行命令并使用ruby。所以我也想将这些变量也用于sudo。

现在我做了一些研究,发现的一个解决方案是

1)通过运行命令sudo修改/etc/sudoers,并通过添加目录来编辑sudo visudo

2)在secure_path的末尾添加alias sudo='sudo env PATH=$PATH'

主要我想将/root/.bashrc/home/NHLSAdmin/.rbenv/shims/bundle这些目录添加到我的sudo路径中。因此,当我运行/home/NHLSAdmin/.rbenv/plugins/ruby-build/bin:/home/NHLSAdmin/.rbenv/shims:/home/NHLSAdmin/.rbenv/bin时,它就会运行。

哪个更好,还有其他方法可以实现我想要的目标。或者我可以使用sodu rbenv install 2.6.3等再次重复相同过程的整个安装过程。

谢谢

0 个答案:

没有答案