@hckn

Почему не дает поменять DNS?

Убунту 16.04

sudo echo "nameserver 208.67.222.222" > /etc/resolvconf/resolv.conf.d/base
sudo echo "nameserver 208.67.220.220" > /etc/resolvconf/resolv.conf.d/head


Обе команды дают ошибку

zsh: permission denied: /etc/resolvconf/resolv.conf.d/base


Как же тогда менять ДНС (без маскарадов и других утилит дополнительных, и не меняя файл вручнуюю, что не рекомендуется)
  • Вопрос задан
  • 151 просмотр
Решения вопроса 3
sim3x
@sim3x
В данном случае судо относится к ехо, а перенаправление в файл получается от имени текущего пользователя

echo 'foo' | sudo tee /filename
Ответ написан
Комментировать
@pfg21
ex-турист
ошибка в команде :)
sudo echo "nameserver 208.67.222.222" > /etc/resolvconf/resolv.conf.d/base

тут тут в одной строке вызов двух "команд": внешней команды echo и потом команды записи в файл.
права назначаются каждой по отдельности.
echo запускается от имени root, а запись в файл уже происходит от имени обычного пользователя.

надо сделать все правильно
echo запустить с правами обычного пользователя, а записать уже с правами root (используявнешнюю команду перенаправления потока ввода в файл)
echo "nameserver 208.67.222.222" | sudo tee /etc/resolvconf/resolv.conf.d/base
Ответ написан
Комментировать
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
Потому-что перенаправление вывода.
sudo bash
вам в помощь или

sudo bash -c "echo "nameserver 208.67.222.222" > /etc/resolvconf/resolv.conf.d/base"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы