Гайд: Решение ошибки «Отказано в доступе» при записи в /etc/environment в Astra Linux - Часть 1

Подробный гайд по устранению ошибки «Отказано в доступе» при записи в /etc/environment в Astra Linux. Разбираем sudo, права, ro и мандатную защиту.

2026.11.02                  


Гайд: Решение ошибки «Отказано в доступе» при записи в /etc/environment в Astra Linux - Часть 1Гайд: Решение ошибки «Отказано в доступе» при записи в /etc/environment в Astra Linux - Часть 1

Ошибка «Отказано в доступе» при записи в /etc/environment в Astra Linux

Файл /etc/environment — системный файл настройки переменных окружения. Обычно он принадлежит root, имеет права 644 и доступен для записи только пользователю root.

Типичная ошибка выглядит так:

echo "MY_VAR=value" >> /etc/environment
bash: /etc/environment: Отказано в доступе

или так:

sudo echo "MY_VAR=value" >> /etc/environment
bash: /etc/environment: Отказано в доступе


В Astra Linux, особенно в Special Edition, причина может быть не только в обычных правах rwx, но и в механизмах защиты: мандатный доступ, контроль целостности, замкнутая программная среда, read-only файловая система, immutable-атрибут, ACL, контейнеры или ограничения sudo.


1. Самая частая причина: неправильное использование sudo

Команда:

sudo echo "MY_VAR=value" >> /etc/environment

Обычно не работает, потому что:

  1. sudo выполняет с правами root только команду echo.
  2. Перенаправление >> /etc/environment выполняет ваш текущий shell от имени обычного пользователя.
  3. Поэтому обычный пользователь не может открыть /etc/environment на запись.

Правильный вариант через tee

echo "MY_VAR=value" | sudo tee -a /etc/environment > /dev/null

или:

printf 'MY_VAR="value"\n' | sudo tee -a /etc/environment > /dev/null

Где:

  • sudo tee -a /etc/environment — дописывает строку от имени root;
  • > /dev/null — убирает лишний вывод на экран.

Правильный вариант через редактор

sudoedit /etc/environment

или:

sudo nano /etc/environment

В Astra Linux предпочтительнее использовать sudoedit, если это разрешено политикой безопасности, потому что он редактирует временную копию файла.


2. Быстрая диагностика

Выполните по порядку.

2.1. Проверьте, что вы действительно можете использовать sudo

sudo -v

Если запрашивается пароль и команда выполняется — sudo работает.

Проверить свои права:

sudo -l

Если в выводе нет права на выполнение нужных команд, значит проблема в настройках sudoers.


2.2. Проверьте файл и его права

ls -l /etc/environment

Нормальный вид примерно такой:

-rw-r--r-- 1 root root 123 ноя  2 12:00 /etc/environment

Проверка подробной информации:

stat /etc/environment

Если файл вдруг принадлежит не root, это может быть причиной проблем.

Восстановить владельца и права, если это допустимо политикой системы:

sudo chown root:root /etc/environment
sudo chmod 644 /etc/environment

В защищённой Astra Linux без согласования с администратором безопасности менять права и метки нежелательно.


2.3. Проверьте, не является ли файл символической ссылкой

ls -l /etc/environment
readlink -f /etc/environment

Если /etc/environment — ссылка, редактировать нужно целевой файл.

Например, если вывод:

/etc/environment -> /usr/share/some-dir/environment

то изменения надо вносить в реальный файл, на который указывает ссылка, если это разрешено.


3. Проверка записи в /etc от имени root

Сначала проверьте, может ли root вообще писать в каталог /etc.

sudo sh -c 'echo test > /etc/.write_test && rm -f /etc/.write_test'

Если команда прошла без ошибок, значит каталог /etc в целом доступен для записи от root, и проблема, скорее всего, в самом файле /etc/environment, его атрибутах, метках безопасности или ссылке.

Если команда тоже даёт «Отказано в доступе», значит проблема глубже:

  • файловая система смонтирована read-only;
  • включены механизмы защиты Astra Linux;
  • файл или каталог имеет специальные атрибуты;
  • используется контейнер, chroot, overlay;
  • политика sudo реально не даёт права;
  • сработал контроль целостности или замкнутая программная среда.

4. Файловая система только для чтения

Проверьте, как смонтирована файловая система.

findmnt -T /etc/environment

Или:

mount | grep -E ' / | /etc '

Если в опциях есть ro, файловая система смонтирована только для чтения.

Пример:

/, /dev/sda1, ext4, ro,relatime

Попробуйте перемонтировать в режим записи:



sudo mount -o remount,rw /

Если /etc находится на отдельном разделе:

findmnt -T /etc
sudo mount -o remount,rw /etc

Если команда не помогает, проверьте /etc/fstab:

cat /etc/fstab

Ищите опцию ro для корневого раздела или раздела /etc. Также файловая система может автоматически переключиться в ro из-за ошибок диска.

Проверьте:

sudo dmesg | tail -n 100
sudo journalctl -b -p err

Ищите сообщения вроде:

EXT4-fs error
Remounting filesystem read-only
I/O error

В этом случае сначала нужно решать проблему с диском или файловой системой, а не просто пытаться писать в файл.


Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


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

Комментарии

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