Как написать в / etc / profile используя bash |Доступ запрещен - PullRequest
0 голосов
/ 25 июня 2018

Я создаю сценарий bash для настройки ОС Ubuntu 16.04 lts для загрузки, установки и прочего без введения каждой команды в отдельности, и мне нужно написать в файле / etc / profile, чтобы добавить переменную среды PATH.Когда мой код попадает в эту строку, появляется сообщение «Отказано в доступе», вот что у меня есть:

sudo echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
bash: /etc/profile: Permission denied

Вы знаете, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 25 июня 2018

Перенаправление ввода-вывода оболочки * происходит до , когда оболочка выполняет вашу команду ... другими словами, когда вы пишете:

sudo somecommand >> /etc/profile

Часть >> /etc/profile выполняется кактекущий пользователь, а не root.Вот почему вы получаете сообщение «Отказано в доступе».Существуют различные способы решения этой проблемы.Вы можете выполнить:

sudo sh -c "echo export PATH=$PATH:/usr/local/go/bin >> /etc/profile"

Или использовать флаг добавления (-a) к команде tee:

echo "export PATH=$PATH:/usr/local/go/bin" | sudo tee -a /etc/profile
...