Home » Введение в права доступа в Linux
Введение в права доступа в Linux

Введение в права доступа в Linux

Если ты только начинаешь разбираться с Linux-серверами, то, скорее всего, уже сталкивался с загадочными rwxr-xr-x, chmod 755, chown root:root и прочими штуками, которые выглядят как магия из старых манускриптов. Но на самом деле — это не магия, а система прав доступа, которая защищает твой сервер от случайных (и не очень) косяков, а иногда и от самого себя. В этой статье разберёмся, как устроены права доступа в Linux, почему это важно, как быстро и просто всё настроить, и как не наступить на грабли, которые уже проверили на себе тысячи админов. Будет много практики, примеры, схемы, кейсы и даже немного гиковских лайфхаков. Погнали!

Как это работает? — Простыми словами о правах доступа в Linux

Всё в Linux — это файл. Даже процессы, устройства и каталоги. И у каждого файла есть три важных параметра: владелец (user), группа (group) и остальные (others). Для каждого из них можно задать три типа прав:

  • r — read (чтение)
  • w — write (запись)
  • x — execute (исполнение)

Выглядит это примерно так:


-rwxr-xr-- 1 user group 4096 Jun 1 12:34 myscript.sh

Что это значит?

  • user (владелец) — может читать, писать и запускать файл
  • group (группа) — может читать и запускать, но не писать
  • others (остальные) — могут только читать

Права доступа — это твой первый и самый важный firewall. Если ты не хочешь, чтобы кто-то случайно (или специально) удалил твой сайт, базу данных или скрипт, — правильно настраивай права. Это не только про безопасность, но и про удобство: если у тебя есть команда, ты можешь дать каждому ровно столько доступа, сколько нужно для работы, и не больше.

Как быстро и просто всё настроить?

Окей, теория — это хорошо, но как этим пользоваться на практике? Вот тебе пошаговый гайд, который реально работает.

1. Проверяем текущие права


ls -l /путь/к/файлу_или_каталогу

Ты увидишь что-то вроде:


drwxr-x--- 2 admin www-data 4096 Jun 1 12:34 /var/www/html

2. Меняем права доступа (chmod)

Команда chmod позволяет быстро выставить нужные права. Есть два способа: символьный и числовой.

  • Символьный: chmod u+x myscript.sh — добавить право на исполнение владельцу
  • Числовой: chmod 755 myscript.sh — rwxr-xr-x (владелец: всё, группа и остальные: только чтение и исполнение)

Таблица соответствия числовых и символьных прав:

Число Права Описание
7 rwx Чтение, запись, исполнение
6 rw- Чтение, запись
5 r-x Чтение, исполнение
4 r– Только чтение
0 Нет доступа

3. Меняем владельца и группу (chown, chgrp)


chown user:group /путь/к/файлу
chgrp group /путь/к/файлу

Это важно, если ты хочешь, чтобы, например, веб-сервер (обычно www-data) мог читать твои файлы, но не мог их менять.

4. Рекурсивное изменение прав


chmod -R 755 /var/www/html
chown -R www-data:www-data /var/www/html

Внимание! Не делай chmod -R 777 / — это мгновенный билет в ад для любого сервера. Подробнее — ниже в кейсах.

Примеры, схемы, практические советы

Кейс 1: Веб-сервер и права на сайт

Ты разворачиваешь сайт на VPS (заказать VPS). Файлы сайта лежат в /var/www/html. Веб-сервер работает от пользователя www-data.

  • Правильно: chown -R www-data:www-data /var/www/html и chmod -R 755 /var/www/html
  • Почему: Веб-сервер может читать и исполнять файлы, но не может их менять (если не нужно).
  • Неправильно: chmod -R 777 /var/www/html
  • Почему плохо: Любой пользователь (и любой скрипт) может делать с файлами что угодно. Это дыра в безопасности размером с Марс.

Кейс 2: Разработка и деплой

У тебя есть команда разработчиков, которые пушат код через git. Ты хочешь, чтобы они могли обновлять файлы, но не могли менять конфиги сервера.

  • Создай группу devs и добавь туда всех разработчиков.
  • Сделай chown -R root:devs /var/www/project
  • Дай группе права на запись: chmod -R 775 /var/www/project
  • Конфиги (/etc/nginx/nginx.conf) оставь только для root: chmod 600 /etc/nginx/nginx.conf

Результат: Разработчики могут работать с кодом, но не могут случайно (или специально) сломать сервер.

Кейс 3: Ловушка для новичков — chmod 777

Очень часто на форумах советуют: “Не работает? Сделай chmod 777 — и всё заработает!”. Это ловушка.

Действие Результат Комментарий
chmod 777 /var/www/html Всё работает, но дырка в безопасности Любой пользователь и процесс может читать, писать и запускать файлы. Взлом — вопрос времени.
chmod 755 /var/www/html Работает только то, что нужно Владелец может всё, остальные — только читать и запускать. Безопасно.

Кейс 4: SFTP-доступ для клиента

Клиенту нужен доступ только к папке с его сайтом. Решение:

  • Создай пользователя client1
  • Ограничь домашнюю директорию: usermod -d /var/www/client1 client1
  • Поставь права: chown -R client1:www-data /var/www/client1 и chmod -R 750 /var/www/client1

Результат: Клиент может работать только со своими файлами, не видит чужие сайты.

Полный список команд для работы с правами доступа


# Проверка прав
ls -l /путь/к/файлу

# Изменение прав (символьный и числовой режим)
chmod u+x file.sh
chmod 755 file.sh

# Рекурсивное изменение прав
chmod -R 755 /var/www/html

# Изменение владельца и группы
chown user:group file.txt
chown -R www-data:www-data /var/www/html

# Изменение только группы
chgrp group file.txt

# Проверка владельца и группы
stat file.txt

# Создание пользователя и группы
adduser newuser
groupadd newgroup
usermod -aG newgroup user

# Установка прав только на чтение
chmod 444 file.txt

# Установка прав только на исполнение
chmod 111 file.sh

# Установка прав только на запись
chmod 222 file.txt

Похожие решения, программы и утилиты

  • setfacl — расширенные списки контроля доступа (ACL), если стандартных прав мало. Документация
  • getfacl — просмотр расширенных прав. Документация
  • sudo — временное повышение прав для выполнения команд от имени другого пользователя. Официальный сайт
  • su — переключение на другого пользователя (например, root).
  • umask — установка маски по умолчанию для новых файлов. man-страница

Статистика и сравнение с другими системами

В отличие от Windows, где права доступа часто запутаны и завязаны на реестр, в Linux всё просто и прозрачно. По статистике W3Techs, более 70% веб-серверов в мире работают на Linux, и грамотная настройка прав — это must-have для любого админа.

В macOS (тоже Unix-подобная система) права работают аналогично, но есть свои нюансы с ACL и системой безопасности SIP.

В FreeBSD и других *nix системах — всё очень похоже, но иногда встречаются дополнительные флаги (например, immutable).

Интересные факты и нестандартные способы использования

  • Можно сделать файл неизменяемым даже для root: chattr +i file.txt (работает на ext4, подробнее — man chattr).
  • Можно сделать каталог “sticky” — только владелец файла может его удалить, даже если у всех есть права на запись: chmod +t /tmp (см. Sticky bit).
  • Можно автоматически выставлять группу для новых файлов в каталоге: chmod g+s /var/www/html — все новые файлы будут принадлежать группе каталога.
  • umask — твой друг для автоматизации: если ты часто создаёшь файлы через скрипты, выставь нужную маску прав, чтобы не было сюрпризов.
  • Можно использовать ACL для тонкой настройки доступа, например, дать одному пользователю право только на чтение файла, а другому — только на запись.

Новые возможности: автоматизация и скрипты

Грамотная настройка прав — это не только про безопасность, но и про автоматизацию. Если ты пишешь скрипты для деплоя, бэкапов или обслуживания, всегда добавляй команды chmod и chown в свои пайплайны. Это поможет избежать ситуаций, когда скрипт работает только под root, а потом ломается у обычного пользователя.

  • В Ansible, Chef, Puppet и других системах управления конфигурациями есть модули для работы с правами (file, copy, template).
  • Можно автоматически выставлять права при создании новых пользователей или сайтов.
  • Можно делать аудит прав с помощью скриптов и утилит (find / -perm 777 — ищет все файлы с дырявыми правами).

Вывод — заключение и рекомендации

Права доступа в Linux — это твой первый и самый надёжный щит. Не ленись разбираться, не копируй слепо советы с форумов, всегда думай, кому и зачем ты даёшь доступ. Используй chmod, chown, setfacl и другие инструменты для гибкой настройки. Не забывай про автоматизацию — это экономит время и нервы. Если хочешь надёжный сервер для своих проектов — смотри VPS или выделенный сервер на этом блоге.

Прокачивай свои навыки, экспериментируй, не бойся ошибаться (но делай бэкапы!). И помни: правильные права — это не только про безопасность, но и про удобство работы. Удачи!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked