Перейти к содержанию

Права доступа в Linux и команда chmod

В Linux каждый файл и каталог имеет три типа прав доступа для трех категорий пользователей:

  • Владелец (user, u)
  • Группа (group, g)
  • Другие пользователи (other, o)

Права доступа определяются тремя основными действиями:

  • Чтение (read, r) — право просматривать содержимое файла.
  • Запись (write, w) — право изменять файл.
  • Исполнение (execute, x) — право запускать файл как программу (исполнять скрипт или бинарный файл).

Значения прав доступа в числовом формате

Каждому праву соответствует числовое значение:

  • Чтение (r) = 4
  • Запись (w) = 2
  • Исполнение (x) = 1

Чтобы задать полный набор прав для категории пользователей, нужно сложить соответствующие числа:

Действие Чтение (r) Запись (w) Исполнение (x) Значение
Нет доступа 0 0 0 0
Только чтение 4 0 0 4
Чтение + Запись 4 2 0 6
Чтение + Запись + Исполнение 4 2 1 7

Каждому праву доступа (владелец, группа, другие пользователи) назначается отдельная цифра, и итоговая команда chmod записывается в формате chmod XYZ <файл>, где X — права для владельца, Y — для группы, а Z — для других пользователей.


Часто используемые комбинации chmod

Вот основные комбинации значений и что они означают:

  1. chmod 777 <файл> — Полный доступ для всех (владелец, группа и другие пользователи).
    • Владелец, группа и другие могут читать, записывать и исполнять файл.
    • Числовое представление: 7 (4+2+1) для всех категорий.
  2. chmod 755 <файл> — Полный доступ для владельца, а для группы и других только чтение и исполнение.
    • Владелец: чтение, запись и исполнение (7 = 4+2+1).
    • Группа и другие: чтение и исполнение (5 = 4+0+1).
  3. chmod 644 <файл> — Владелец может читать и записывать, а группа и другие — только читать.
    • Владелец: чтение и запись (6 = 4+2).
    • Группа и другие: только чтение (4 = 4+0+0).
  4. chmod 700 <файл> — Полный доступ для владельца, без доступа для группы и других.
    • Владелец: чтение, запись и исполнение (7).
    • Группа и другие: нет доступа (0).
  5. chmod 600 <файл> — Владелец может читать и записывать, остальные не имеют доступа.
    • Владелец: чтение и запись (6).
    • Группа и другие: нет доступа (0).

Примеры команд

  • chmod 750 script.sh — Владелец может читать, записывать и исполнять; группа может читать и исполнять; другие не имеют доступа.
  • chmod 644 document.txt — Владелец может читать и записывать; группа и другие могут только читать.

Как применять chmod

chmod 755 program.sh  # делает файл исполняемым для всех пользователей
chmod 600 private.txt  # ограничивает доступ только для владельца

Используя числовой формат для задания прав, можно быстро и удобно настраивать доступ к файлам и каталогам в Linux.