Почему максимальное значение для прав доступа в команде chmod равно 7?

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

Ответ

Максимальное значение 7 происходит из восьмеричной (octal) системы счисления, используемой для краткого представления набора из трёх битовых флагов прав доступа. Каждый флаг имеет вес:

  • 4 (r) — право на чтение (read)
  • 2 (w) — право на запись (write)
  • 1 (x) — право на выполнение (execute)

Сумма этих весов 4 + 2 + 1 = 7 даёт полные права: чтение, запись и выполнение.

Пример из практики: При написании скриптов для настройки безопасности я часто явно задаю права 750 для исполняемых файлов, чтобы владелец имел полный доступ, группа — только чтение и выполнение, а остальные пользователи — никаких прав.

# Установка прав для скрипта развертывания (deploy.sh)
chmod 750 /opt/scripts/deploy.sh

# Это эквивалентно символьной записи:
chmod u=rwx,g=rx,o= /opt/scripts/deploy.sh

# Проверка прав
ls -l /opt/scripts/deploy.sh
-rwxr-x--- 1 deploy deploy 1204 Apr 11 14:00 deploy.sh

Восьмеричная запись 750 расшифровывается как:

  • 7 (владелец): rwx (4+2+1)
  • 5 (группа): r-x (4+0+1)
  • 0 (остальные): --- (0+0+0)