Как скопировать переменные среды пользователя в переменные среды sudo - PullRequest
0 голосов
/ 28 июня 2019

Я новичок в Linux.И в настоящее время я использую Ubuntu 18.04 LTS.На самом деле у меня есть проблема.Я установил Ruby с помощью rbenv.Когда я запускал команды типа rbenv install 2.6.3 и gem install bundler.Я не использовал sudo как sudo rbenv install 2.6.3 и sudo gem install bundler.

Теперь проблема заключается в том, что я запускаю команду в /var/www/mydirectory/code, что 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.Затем я получаю следующий вывод

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Как я вижу, для пути sudo не было каталогов, таких как /home/NHLSAdmin/.rbenv/shims/bundle, /home/NHLSAdmin/.rbenv/plugins/ruby-build/bin.Вот почему sudo не может его найти.

Теперь я хочу сделать эти переменные доступными для sudo.На самом деле я буду использовать какой-то инструмент автоматизации, который будет запускать команды и использовать ruby.Поэтому я хочу, чтобы эти переменные также были доступны для sudo.

Теперь я провел небольшое исследование и нашел одно решение:

1) изменил /etc/sudoers, выполнив команду sudo visudoи отредактируйте secure_path, добавив каталоги

2) Добавьте alias sudo='sudo env PATH=$PATH' в конце /root/.bashrc

В основном я хочу добавить /home/NHLSAdmin/.rbenv/shims/bundle, /home/NHLSAdmin/.rbenv/plugins/ruby-build/bin:/home/NHLSAdmin/.rbenv/shims:/home/NHLSAdmin/.rbenv/bin этих каталоговна мой путь sudo.Поэтому, когда я запускаю sudo bundle install, тогда он запускается.

Что лучше, и есть ли другой способ добиться того, чего я хочу.Или я могу снова повторить всю установку той же процедуры с sodu rbenv установить 2.6.3 и т. Д.

Спасибо

...