Как ограничить права доступа к YAML-файлу в Linux?

«Как ограничить права доступа к YAML-файлу в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Linux для управления доступом к файлам, включая YAML-конфигурации, используются стандартные механизмы прав и владения.

1. Базовые права (chmod): Используйте команду chmod для установки прав чтения, записи и выполнения для владельца, группы и остальных пользователей.

# Разрешить только чтение владельцу, запретить все остальное
chmod 400 application-config.yml

# Владелец — чтение/запись, группа — только чтение, остальные — нет прав
chmod 640 application-config.yml

2. Владение файлом (chown): Для строгого контроля сначала назначьте файл правильному пользователю и группе.

# Сделать владельцем пользователя 'appuser' и группу 'appgroup'
sudo chown appuser:appgroup application-config.yml
# Затем ограничить права только для владельца
sudo chmod 600 application-config.yml

3. Расширенные списки контроля доступа (ACL): Для более гибких сценариев, когда нужно дать права конкретному пользователю, не входящему в группу владельца.

# Разрешить пользователю 'monitor' только читать файл
setfacl -m u:monitor:r-- application-config.yml
# Просмотреть установленные ACL
getfacl application-config.yml

Практический совет: Для конфиденциальных конфигураций (с секретами) я всегда комбинирую chown для назначения минимально необходимой служебной учетной записи и chmod 600, чтобы исключить чтение кем-либо еще. В инфраструктурном коде (Ansible, Terraform) эти операции автоматизируются при развертывании.