Не удается изменить файл "/etc / network / interfaces" с помощью сценария bash в Ubuntu [дубликат]


Возможные Дубликаты:

sudo разрешение отклонено

мне нужно отредактировать /etc / network / interfaces через bash script, я делаю что-то вроде ниже...

sudo echo something > /etc/network/interfaces

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

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

sudo nano /etc/network/interfaces

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

1
задан Community
15.04.2023 1:49 Количество просмотров материала 3446
Распечатать страницу

1 ответ

на этот вопрос уже дан ответ где-то на этом сайте, хотя я его не нашел.

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

sudo nano /etc/network/interfaces начинается nano/etc / network / interfaces как 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. Работает все время как корень не рекомендуется, однако бывают случаи, когда вы просто хотите иметь достаточные права без ввода команды sudo-команда перед каждым одна строка. Просто не используйте root в качестве основного пользователя. Его можно использовать для установки и настройки системы.

4
отвечен Hennes 2023-04-16 09:37

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх