Gymterview
junior

Как работают права доступа к файлам в Linux?

Каждый файл и директория в Linux имеют набор прав доступа, определяющих, кто и какие операции может выполнять.

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

  • Owner (u) — владелец файла
  • Group (g) — группа-владелец
  • Others (o) — все остальные

Три типа прав

Право Буква Число Для файла Для директории
Чтение r 4 Просмотр содержимого Просмотр списка файлов
Запись w 2 Изменение содержимого Создание/удаление файлов внутри
Выполнение x 1 Запуск как программы Вход (cd) в директорию

Числовое представление (восьмеричное)

Пример
rwxr-xr-- = 754
rwx = 4+2+1 = 7 (владелец)
r-x = 4+0+1 = 5 (группа)
r-- = 4+0+0 = 4 (остальные)

chmod — изменение прав

Пример
# Символьный формат
chmod u+x script.sh              # Добавить выполнение для владельца
chmod g-w file.txt               # Убрать запись для группы
chmod o-rwx file.txt             # Убрать все права для остальных
chmod a+r file.txt               # Добавить чтение для всех (a = all)
chmod u=rwx,g=rx,o=r file.txt   # Установить конкретные права

# Числовой формат
chmod 755 script.sh              # rwxr-xr-x (стандарт для скриптов)
chmod 644 file.txt               # rw-r--r-- (стандарт для файлов)
chmod 700 private/               # rwx------ (только владелец)
chmod 600 id_rsa                 # rw------- (SSH-ключ)

# Рекурсивно
chmod -R 755 directory/          # Применить ко всем файлам и поддиректориям

chown — изменение владельца

Пример
chown user file.txt              # Сменить владельца
chown user:group file.txt        # Сменить владельца и группу
chown :group file.txt            # Сменить только группу
chown -R user:group directory/   # Рекурсивно

chgrp — изменение группы

Пример
chgrp developers project/        # Сменить группу
chgrp -R developers project/     # Рекурсивно

umask — маска прав по умолчанию

Определяет, какие права НЕ будут установлены при создании новых файлов и директорий.

Пример
umask                            # Показать текущую маску (обычно 0022)
umask 0027                       # Установить маску

# Расчёт: базовые права минус umask
# Файлы:      666 - 022 = 644 (rw-r--r--)
# Директории: 777 - 022 = 755 (rwxr-xr-x)

Типичные комбинации прав

Число Символьный вид Типичное использование
755 rwxr-xr-x Скрипты, исполняемые файлы, директории
644 rw-r--r-- Обычные файлы, конфигурации
600 rw------- SSH-ключи, приватные файлы
700 rwx------ Домашняя директория, приватные каталоги
777 rwxrwxrwx Использовать НЕ рекомендуется (доступ всем)

На собеседовании: интервьюер хочет проверить, можете ли вы прочитать строку drwxr-xr-x и быстро перевести между числовым (755) и символьным (rwxr-xr-x) форматами. Частая ошибка — путать права на директорию: x для директории означает возможность войти в неё (cd), а не «выполнить». Без x на директории даже ls внутри не сработает, даже если есть r.