"E21: невозможно внести изменения" при редактировании resolv.conf

Несколькими часами ранее я купил биглебон и теперь пытаюсь добавить nameserver 8.8.8.8 в /etc/resolv.conf, Однако, когда я открываю его с помощью vim и пытаюсь добавить свой сервер имен, он дает мне E21: не может вносить изменения, "модифицируемый" выключен. Я изменил разрешения через chmod. chmod u+rx /etc/resolv.conf Но ничего не изменилось. Я все еще не могу записать в файл resolv.conf. Что я должен делать?

5 ответов

Решение

Из документации vim:

Если вы внесли изменения в файл и забыли, что он доступен только для чтения, вы все равно можете его записать. Добавить! на команду записи, чтобы заставить запись.

Если вы действительно хотите запретить вносить изменения в файл, сделайте это:

vim -M file

Теперь каждая попытка изменить текст не удастся. Например, файлы справки выглядят так. Если вы попытаетесь внести изменение, вы получите это сообщение об ошибке:

E21: Cannot make changes, 'modifiable' is off 

Вы можете использовать аргумент -M, чтобы настроить Vim для работы в режиме просмотра. Это только добровольно, так как эти команды снимают защиту:

:set modifiable
:set write

/etc/resolv.conf принадлежит rootпоэтому вы должны отредактировать его как root ( используяsudo):

sudo vim /etc/resolv.conf

Вы могли бы хотеть поддержать это сначала хотя:

sudo cp /etc/resolv.conf /etc/resolv.conf.old

Если вы предпочитаете редактировать его графически, то вместо использования vim, ты можешь использовать:

gksu gedit /etc/resolv.conf

Или на Кубунту:

kdesudo kate /etc/resolv.conf

Если вы изменили /etc/resolv.confРазрешения, вы должны изменить их обратно, так как разрешения по умолчанию предотвращают несанкционированный доступ при разрешении авторизованного доступа, как описано выше.

Однако, скорее всего, вы не меняли никаких прав доступа, так как по умолчанию (по крайней мере, в Ubuntu 12.04 LTS) /etc/resolv.conf на самом деле символическая ссылка на /run/resolvconf/resolv.conf,

Просто нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команды ниже.

gksudo gedit /etc/resolv.conf

Это позволит вам изменить файл и сохранить его.

Ты можешь попробовать:

opkg update
opkg install gedit 

(Отказ от ответственности: это основано на интернет-исследованиях, а не на практическом опыте работы с Правлением.)

Согласно этой статье,

Английский дистрибутив [...] Linux входит в состав карты microSD, прилагаемой к каждому Beaglebone.

Не цитируя всю статью (кажется, она написана очень хорошо), вам необходимо:

  1. SSH в вашу Beagleboard как корень.
  2. редактировать /etc/network/interfaces,
  3. добавлять dns-nameservers 8.8.8.8,
  4. Бежать /etc/init.d/networking restart

Если ваши настройки, кажется, работают, но после перезагрузки пропадают, прочитайте эту статью о настройке Connman.

Вам нужно будет установить connman-tests пакет, чтобы включить конфигурацию командной строки Connman, и установить серверы имен, следуя инструкциям.

Пример:

./set-nameservers ethernet_405fc276b749_cable 8.8.8.8

Ты можешь попробовать:

vim resolv.conf

Сохраните это после этого

rm -rf /etc/resolv.conf

Затем переместите файл resolv.conf в /etc/

mv resolv.conf /etc/
Другие вопросы по тегам