1 min read

chmod: права доступа в Linux от простого к практике

chmod: права доступа в Linux от простого к практике

Права доступа в Linux — базовая вещь, но детали chmod приходится освежать в памяти. Особенно числовые значения: что такое 755 и чем отличается от 644 — вспоминаешь не сразу.

Синтаксис команды стандартный:

chmod [опции] права /path/to/file

Из чего состоят права

Три типа разрешений:

  • r — чтение
  • w — запись
  • x — выполнение
  • s — выполнение с правами суперпользователя (специальный бит)

Три категории пользователей:

  • u — владелец файла
  • g — группа
  • o — все остальные

Символьный формат

Изменить права можно с помощью + (добавить) и - (убрать):

chmod u+x file         # разрешить выполнение владельцу
chmod ugo+x file       # разрешить выполнение всем
chmod ug+w file        # разрешить запись владельцу и группе
chmod o-x file         # запретить выполнение остальным
chmod ugo+rwx file     # полный доступ для всех

Числовой формат

Каждое разрешение имеет числовое значение: r=4, w=2, x=1. Складываешь для каждой категории — владелец, группа, остальные:

Запись Владелец Группа Остальные
744 rwx (7) r (4) r (4)
755 rwx (7) r-x (5) r-x (5)
764 rwx (7) rw (6) r (4)
777 rwx (7) rwx (7) rwx (7)

755 — типичный вариант для исполняемых файлов и директорий: владелец может всё, остальные читают и запускают. 644 — для обычных файлов: владелец читает и пишет, остальные только читают.

777 открывает полный доступ всем — в продакшне это почти всегда лишнее.

Полезные флаги

chmod -R 755 /path/dir    # применить рекурсивно ко всей директории
chmod -v 644 file         # показать подробный вывод что изменилось
chmod -c 644 file         # показать только реальные изменения (если было другое)
chmod --reference=src dst # скопировать права с одного файла на другой

--preserve-root запрещает рекурсивные операции на корневом / — защита от случайного chmod -R 777 /.

Практика

# добавить право выполнения для владельца
chmod u+x script.sh

# выставить конкретные права и проверить
chmod 766 file
ls -l file

# убрать право выполнения
chmod u-x file

Если работаешь с Linux-серверами и нужна помощь с настройкой инфраструктуры — пиши на [email protected] или заходи на 1it.pro.

Связаться с нами
Telegram
WhatsApp
Email