Подробный гайд: Не редактируется /etc/sysconfig/network в Linux: причины и подробное решение

Гайд по исправлению ошибки чтения конфигов сети в Linux. Разбор прав доступа, снятия флага chattr, перемонтирования RO-диска и работы с NetworkManager.

2026.06.20                  


Подробный гайд: Не редактируется /etc/sysconfig/network в Linux: причины и подробное решениеПодробный гайд: Не редактируется /etc/sysconfig/network в Linux: причины и подробное решение Файл конфигурации сети в директории /etc/sysconfig/network-scripts/ (обычно это файлы вида ifcfg-eth0, ifcfg-enp3s0 и т.д.) не дает себя редактировать, может быть вызвана несколькими причинами.

Ниже представлен подробный гайд по диагностике и решению этой проблемы, от самых частых и простых к более редким.


Причина 1: Недостаточно прав (Режим "Только для чтения" в редакторе)

Если вы открыли файл обычным пользователем, система позволит вам его прочитать, но не даст сохранить изменения. В редакторе vi/vim при попытке сохранения (:w) будет выдаваться ошибка E212: Can't open file for writing или Read-only.


Решение:

Открывайте файл исключительно через sudo или от имени суперпользователя root.

# Используем nano (проще для новичков)
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

# Или используем vi/vim
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

(Замените ifcfg-eth0 на имя вашего реального интерфейса, которое можно посмотреть командой ip a).


Причина 2: Особенности работы в редакторе Vi/Vim

Если вы используете vi или vim и при открытии файла не можете вводить текст (стрелки работают, но буквы не печатаются, или внизу написано -- INSERT -- отсутствует), значит, вы находитесь не в том режиме.


Решение:

  1. Чтобы начать печатать текст, нажмите клавишу i (перейдете в режим Insert). Внизу слева появится надпись -- INSERT --.
  2. Внесите нужные изменения.
  3. Чтобы сохранить и выйти: нажмите Esc (выйдете из режима ввода), затем наберите :wq и нажмите Enter.
  4. Если нужно выйти без сохранения: Esc, затем :q! и Enter.

Причина 3: Файл защищен атрибутом "неизменяемости" (Immutable)

Иногда администраторы или специфические скрипты блокируют файлы от изменений даже для root, устанавливая атрибут i (immutable). В этом случае sudo не поможет, а vi может открыть файл в режиме только для чтения.


Решение:

1. Проверьте атрибуты файла командой:
   lsattr /etc/sysconfig/network-scripts/ifcfg-eth0
  1. Если в выводе вы видите букву i (например, ----i---------e----), значит, файл заблокирован.
3. Снимите блокировку:
   sudo chattr -i /etc/sysconfig/network-scripts/ifcfg-eth0
4. После этого файл можно будет редактировать. (Не забудьте вернуть атрибут обратно, если это было сделано в целях безопасности: sudo chattr +i ...).

Причина 4: Файловая система смонтирована только для чтения (Read-Only)

Если на сервере произошел сбой, переполнение диска или ошибка файловой системы, Linux в целях защиты автоматически перемонтирует корневой раздел (/) в режим "только для чтения" (RO). В этом случае вы не сможете изменить ни один файл в /etc/.


Решение:

1. Проверьте статус монтирования:
   mount | grep -E '\s+/\s+'

Если в скобках указано (ro, ...) вместо (rw, ...), значит файловая система в режиме Read-Only.

2. Попробуйте перемонтировать её в режим чтения/записи:
   sudo mount -o remount,rw /
3. Если команда выдает ошибку, значит на диске есть ошибки. Потребуется перезагрузка сервера и проверка файловой системы через fsck (обычно это делается в режиме восстановления / Rescue mode).

Причина 5: Современные реалии (NetworkManager в CentOS 8 / RHEL 8 / Alma / Rocky)

Если вы используете современную версию ОС (RHEL/CentOS 8 и новее), ручное редактирование файлов ifcfg-* в /etc/sysconfig/network-scripts/ не рекомендуется и часто игнорируется или перезаписывается службой NetworkManager. Файлы могут быть помечены как управляемые только через API.


Решение (использование встроенных утилит):

Вместо ручного правки текста, используйте текстовый интерфейс NetworkManager:

sudo nmtui
  1. В появившемся меню выберите Edit a connection (Изменить подключение).
  2. Выберите ваш интерфейс, нажмите Edit.
  3. Внесите изменения (IP, шлюз, DNS) с помощью стрелок и пробела.
  4. Сохраните (OK) и выйдите.

Или используйте командную строку nmcli. Например, чтобы задать статический IP:

sudo nmcli connection modify "имя_подключения" ipv4.addresses "192.168.1.100/24"
sudo nmcli connection modify "имя_подключения" ipv4.gateway "192.168.1.1"
sudo nmcli connection modify "имя_подключения" ipv4.method manual

Как применить изменения после редактирования?

Для старых систем (CentOS 7, RHEL 7) с классической службой network:

sudo systemctl restart network
# или перезапустить конкретный интерфейс:
sudo ifdown eth0 && sudo ifup eth0

Для новых систем (CentOS 8+, RHEL 8+, Ubuntu/Debian с NetworkManager):

# Перечитать конфигурацию
sudo nmcli connection reload

# Перезапустить подключение (укажите имя из nmcli con show)
sudo nmcli connection up "имя_вашего_подключения"

Если ни один из способов не помог, напишите, какую именно ошибку выдает система или редактор при попытке сохранения, и я подскажу решение!


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Денис Аверко @Nymexis г. Омск

Комментарии

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