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

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

2026.11.02                  


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

10. Ограничения sudo

Иногда пользователю разрешён sudo, но только для ограниченного набора команд.

Проверьте:

sudo -l

Если там нет права на tee, nano, vi, sed, edit, sudoedit и похожие команды, запись может не сработать.

Пример безопасного запроса к администратору:

Прошу разрешить пользователю имя_пользователя выполнение команды /usr/bin/tee -a /etc/environment через sudo для настройки системных переменных окружения. Но в производственных системах лучше не давать прямой доступ к /etc/environment, а использовать конфигурационное управление.




11. Если вы работаете в контейнере, chroot или overlay

Если система работает в контейнере, chroot или использует overlay-файловую систему, /etc/environment может быть доступен только для чтения.

Проверьте:

systemd-detect-virt

Если вывод показывает контейнерную среду, например:

docker
lxc
podman

то файл может принадлежать образу контейнера.

Проверить cgroup:

cat /proc/1/cgroup

Проверить монтирование корня:

findmnt /

Если корень — overlay, изменения могут не сохраняться или блокироваться.

В этом случае:

  • редактируйте исходный образ контейнера;
  • используйте Dockerfile, volume или config map;
  • не пытайтесь изменить файл внутри временного слоя, если это запрещено.

12. Безопасное редактирование /etc/environment

12.1. Через sudoedit

sudoedit /etc/environment

Это самый аккуратный способ, если он разрешён.

После сохранения проверьте содержимое:

cat /etc/environment

12.2. Через tee

Добавить строку:

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

Или с кавычками:

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

12.3. Перед изменениями сделайте резервную копию

sudo cp -a /etc/environment /etc/environment.bak-$(date +%Y-%m-%d_%H-%M-%S)

Проверка:

ls -l /etc/environment*

13. Правильный формат /etc/environment

Файл /etc/environment — это не shell-скрипт.

В нём обычно используются строки вида:

KEY=value

или:

KEY="value"

Пример:

LANG=ru_RU.UTF-8
LANGUAGE=ru_RU:ru
JAVA_HOME=/opt/jdk-17
http_proxy="http://proxy.example.local:3128"
https_proxy="http://proxy.example.local:3128"

Не надо писать:

export LANG=ru_RU.UTF-8

Это формат для файлов вроде /etc/profile, /etc/profile.d/*.sh, ~/.bashrc, а не для /etc/environment.


14. Как добавить переменную безопасно

Например, нужно добавить:

JAVA_HOME=/opt/jdk-17

Команда:

echo "JAVA_HOME=/opt/jdk-17" | sudo tee -a /etc/environment > /dev/null

Проверка:

grep JAVA_HOME /etc/environment

15. Как изменить уже существующую переменную

Лучше всего отредактировать вручную:

sudoedit /etc/environment

Найдите строку:

LANG=old_value

Замените на:

LANG=ru_RU.UTF-8

Если нужен автоматический вариант для простых случаев:

KEY="LANG"
VALUE="ru_RU.UTF-8"

sudo cp -a /etc/environment /etc/environment.bak-$(date +%Y-%m-%d_%H-%M-%S)

if sudo grep -Eq "^${KEY}=" /etc/environment; then
    sudo sed -i "s|^${KEY}=.*|${KEY}=${VALUE}|" /etc/environment
else
    printf '%s=%s\n' "$KEY" "$VALUE" | sudo tee -a /etc/environment > /dev/null
fi

Осторожно:

sed подходит только для простых значений без специальных символов. Для продакшена безопаснее использовать sudoedit или конфигурационное управление.


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


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

Комментарии

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