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

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

2
задан 10 October 2014 в 02:20

5 ответов

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

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

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

vim -M file

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

E21: Cannot make changes, 'modifiable' is off 

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

:set modifiable
:set write
0
ответ дан 10 October 2014 в 02:20

/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

Или в Kubuntu:

[ 113]

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

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

0
ответ дан 10 October 2014 в 02:20

(Правовая оговорка: это основано на интернет-исследовании, не на фактическом практическом опыте с платой.)

В соответствии с этой статьей,

Дистрибутив Linux Ångström [...] включен в карту памяти microSD, упакованную с каждым Beaglebone.

Не цитируя целую статью (это, кажется, очень хорошо записано, btw.) Вы должны:

  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
1
ответ дан 10 October 2014 в 02:20

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

gksudo gedit /etc/resolv.conf

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

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

opkg update
opkg install gedit 
0
ответ дан 10 October 2014 в 02:20

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

vim resolv.conf

После этого сохранить его

rm -rf /etc/resolv.conf

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

mv resolv.conf /etc/
0
ответ дан 10 October 2014 в 02:20

Другие вопросы по тегам:

Похожие вопросы: