Какая команда в Linux изменяет права доступа к файлам и директориям?

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

Ответ

Основная команда для изменения прав доступа в Linux — chmod (change mode). Она позволяет настраивать разрешения на чтение (r), запись (w) и выполнение (x) для владельца файла, группы и всех остальных пользователей.

Синтаксис:

chmod [опции] <права> <файл_или_директория>

Примеры использования:

  • Символьный формат (более наглядный):
    # Дать владельцу права на чтение и запись, группе — только чтение, остальным — никаких прав.
    chmod u=rw,g=r,o= script.sh
    # Добавить право на выполнение для всех категорий пользователей.
    chmod +x deploy.sh
  • Цифровой (октальный) формат (более компактный):
    # Владелец: rwx (7), группа: r-x (5), остальные: r-x (5). Стандартные права для скриптов.
    chmod 755 application.sh
    # Владелец: rw- (6), группа: r-- (4), остальные: r-- (4). Типичные права для конфигурационных файлов.
    chmod 644 config.yaml

Ключевые опции:

  • -R — применить изменения рекурсивно ко всем файлам и поддиректориям.
    chmod -R 755 /opt/myapp/
  • --reference=<файл> — скопировать права с указанного файла-образца.
    chmod --reference=default_config.yaml new_config.yaml

Как проверить текущие права:

ls -l script.sh
# Вывод: -rwxr-xr-x 1 user group ... script.sh
# Первые 10 символов (-rwxr-xr-x) и показывают права.