
Права доступа к файлам в Linux — одна из важнейших основ безопасности любого сервера — от небольшой виртуальной машины до производственного VPS под Linux. Правильные права доступа предотвращают случайное удаление, снижают риск утечки данных и затрудняют атаки (потому что даже если злоумышленник проникнет в одну учетную запись, он все равно не сможет получить доступ ко всему).
В этом руководстве объясняется, как работают права доступа, как их читать и как безопасно настраивать с помощью chmod, chown, групп, umask и ACL — с практическими примерами для хостинга и веб-серверов.
Каждый файл и каталог принадлежит:
Существует три основных права:
Эти правила необходимы в любой многопользовательской системе, включая хостинговые среды и VPS-серверы, где сосуществуют несколько сервисов и пользователей.
ls -lls -l
Пример вывода:
-rw-r----- 1 alice dev 2048 Mar 10 12:00 config.php
drwxr-xr-x 2 root root 4096 Mar 10 12:00 /var/www
Разбор -rw-r-----:
Совет от профессионала: для получения более подробной информации (включая числовые режимы) используйте:
stat filename
В каталогах r/w/x ведут себя по-разному:
| Право | Для файла | На каталоге |
|---|---|---|
| r | Чтение содержимого файла | Вывести список элементов каталога (ls) |
| w | Редактировать содержимое файла | Создать/удалить/переименовать файлы внутри (если в сочетании с x) |
| x | Запустить файл как программу/скрипт | Ввод/доступ к элементам внутри (cd, открыть файлы) |
Вот почему возникает ситуация «Я вижу папку, но не могу открыть файлы»: в каталоге может быть установлен флаг r без x.
Вы увидите права доступа в двух основных форматах:
rwxr-xr-x755, 644, 600Числовые значения представляют собой суммы:
Итак:
rwxr-xr-----Эти команды — незаменимый инструментарий для управления правами доступа на хостингах и VPS-серверах под управлением Linux.
# Numeric mode:
chmod 644 index.html
chmod 755 script.sh
# Symbolic mode:
chmod u=rw,g=r,o=r config.ini
chmod u x deploy.sh
chmod g w uploads
Будьте осторожны с рекурсивным chmod: каталоги и файлы часто требуют разных режимов (например, 755 для каталогов, 644 для файлов). Вместо chmod -Rбезопаснее использовать find:
# Set directories to 755
find /var/www/site -type d -exec chmod 755 {} ;
# Set files to 644
find /var/www/site -type f -exec chmod 644 {} ;
# Change owner only
chown alice file.txt
# Change owner and group
chown alice:dev file.txt
# Recursive ownership change (use carefully!)
chown -R www-data:www-data /var/www/site
chgrp dev file.txt
В Linux предусмотрены специальные флаги прав доступа, используемые для общих каталогов и управления поведением привилегий:
chmod u s).chmod g s)./tmp) — chmod t.# Sticky bit on shared folder
chmod t /shared
# SGID on a team directory (keeps consistent group ownership)
chmod g s /var/www/team_project
На хостингах и веб-серверах SGID особенно полезен при командных развертываниях, когда несколько пользователей редактируют один и тот же проект, не занимаясь постоянной настройкой групповой собственности.
umask определяет права доступа по умолчанию для вновь создаваемых файлов и каталогов. Это критически важно на серверах: без безопасного значения umask новые файлы могут оказаться слишком открытыми.
# View current umask
umask
# Example: safer defaults (common on servers)
umask 027
При umask 027 типичные значения по умолчанию становятся:
Иногда необходимо предоставить доступ одному пользователю, не меняя владельца/группу. Именно в таких случаях ACL (списки контроля доступа) — подходящий инструмент.
# View ACL
getfacl file.txt
# Give user bob read/write access
setfacl -m u:bob:rw file.txt
# Give group qa read access
setfacl -m g:qa:r file.txt
# Default ACL for a directory (new files inherit it)
setfacl -d -m g:dev:rwX /var/www/team_project
ACL очень удобен на VPS-хостинге, где вы управляете несколькими сервисами/пользователями и хотите обеспечить строгий контроль без постоянных изменений владельца.
Это общие, безопасные исходные настройки (настройте их, если вашему приложению требуется другое поведение):
~/.ssh → 700, ключи → 600755644600 (или 640 с контролируемой группой)Избегайте chmod 777. Это самое распространённое «быстрое решение», которое становится уязвимостью — особенно в общих средах и неправильно настроенных веб-приложениях.
Права доступа — это лишь часть безопасности сервера. Вам также нужна видимость:
Если вы хостите веб-сайты или сервисы, сочетание правильных прав доступа с мониторингом сделает вашу среду Linux значительно более стабильной и безопасной.
Права доступа к файлам в Linux просты в теории, но эффективны на практике. Научитесь читать ls -l, стратегически использовать группы, избегать рискованных рекурсивных изменений, устанавливать безопасный umask и применять ACL, когда требуется точный контроль. Такой подход необходим на любом VPS под Linux и помогает поддерживать стабильность и безопасность вашей хостинговой среды.