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.