Невозможно редактировать файл «/etc/network/interfaces» через скрипт bash в Ubuntu

Невозможно редактировать файл «/etc/network/interfaces» через скрипт bash в Ubuntu

Возможный дубликат:
sudo разрешение отклонено

Мне нужно отредактировать /etc/network/interfaces через скрипт bash, я делаю что-то вроде следующего...

sudo echo something > /etc/network/interfaces

При выполнении этих строк я получаю ошибку, указанную ниже: bash: /etc/network/interfaces: Permission denied

Но если я редактирую тот же файл в каком-то редакторе, то все работает безупречно... т.е.

sudo nano /etc/network/interfaces

выше позвольте мне отредактировать этот файл.

решение1

Ответ на этот вопрос уже был где-то на этом сайте, но мне его не удалось найти.

Но в основном все сводится к следующему:

sudo nano /etc/network/interfacesначинаетсянано /etc/сеть/интерфейсыкак uid 0. Так как nano работает с uid 0 и имеет разрешение на запись в /etc/network/interfaces.

sudo echo something > /etc/network/interfacesначинаетсяэхо чего-токак uid 0. Эта часть успешна. Вывод перенаправляется с помощью >в /etc/network/interfaces`. Однако это перенаправление выполняется с помощью вашей собственной учетной записи. И у нее нет разрешения на запись в это место.


Попробуйте вместо этого следующее:
sudo bash -c "echo something > /etc/network/interfaces"

Это должно запустить bash как uid 0 и позволить bash выполнить всю команду как uid 0.

Или просто su -root. Работать все время как root не рекомендуется, однако бывают случаи, когда вы просто хотите иметь достаточные права, не вводя команду sudo перед каждой строкой. Просто не используйте root как основного пользователя. Использовать его для установки и настройки системы нормально.

Связанный контент