← Назад к вопросам

Каким образом можно сменить права у директории?

1.6 Junior🔥 262 комментариев
#Linux и администрирование

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Смена прав доступа к директории в Linux

Смена прав доступа (permissions) к директории в Linux — фундаментальная операция управления доступом в Unix-подобных системах. Для этого используется команда chmod (change mode), которая позволяет изменять права для владельца (owner), группы (group) и остальных пользователей (others). Права определяют, кто может читать (read), записывать (write) и исполнять/просматривать (execute) содержимое директории.

Основные способы использования chmod

1. Символьный (символический) метод

Позволяет гибко добавлять (+), удалять (-) или устанавливать (=) права для конкретных категорий пользователей: u (user/owner), g (group), o (others), a (all).

# Добавить право на выполнение для владельца
chmod u+x /путь/к/директории

# Удалить право на запись для группы и остальных
chmod go-w /путь/к/директории

# Установить точные права: владелец — чтение/запись/выполнение, группа — чтение/выполнение, остальные — нет прав
chmod u=rwx,g=rx,o= /путь/к/директории

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

2. Числовой (восьмеричный) метод

Использует трехзначное восьмеричное число, где каждая цифра соответствует правам для владельца, группы и остальных. Цифра вычисляется как сумма: 4 (read), 2 (write), 1 (execute).

# Установить права 755: владелец — rwx, группа и остальные — r-x
chmod 755 /путь/к/директории

# Установить права 700: только владелец имеет полный доступ
chmod 700 /путь/к/директории

# Рекурсивно установить права 644 для всех файлов внутри директории (часто используется для веб-серверов)
find /путь/к/директории -type f -exec chmod 644 {} \;

Ключевые особенности прав для директорий

  • Право на выполнение (x) для директории критически важно — оно позволяет "войти" в директорию и получить доступ к её содержимому. Без этого права вы не сможете использовать cd, ls или обратиться к файлам внутри.
  • Право на чтение (r) позволяет просматривать список файлов в директории (например, через ls).
  • Право на запись (w) позволяет создавать, удалять или переименовывать файлы внутри директории.

Дополнительные флаги и команды

  • chown — изменение владельца и группы директории:

    # Изменить владельца директории
    chown новый_владелец /путь/к/директории
    
    # Изменить владельца и группу рекурсивно
    chown -R новый_владелец:новая_группа /путь/к/директории
    
  • chgrp — изменение только группы директории:

    chgrp новая_группа /путь/к/директории
    
  • SUID, SGID, Sticky bit — специальные биты прав:

    # Установить SGID бит (файлы в директории наследуют группу директории)
    chmod g+s /путь/к/директории
    
    # Установить sticky bit (только владелец может удалять свои файлы в общей директории)
    chmod +t /путь/к/директории
    

Практические примеры из DevOps-практики

# Типичные права для веб-директории: владелец — полный доступ, группа — чтение/исполнение, остальные — чтение/исполнение
chmod 755 /var/www/html

# Права для конфиденциальных данных: только владелец имеет доступ
chmod 700 /etc/секретные_данные

# Настройка общей директории для команды разработки
chmod 2770 /shared/project  # SGID + полный доступ для владельца и группы
chown -R devlead:devteam /shared/project

# Быстрое исправление проблем с правами для веб-сервера
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;

Важные предостережения

  • Рекурсивное изменение прав (-R) следует использовать с осторожностью, особенно на корневых директориях, чтобы не нарушить работу системы.
  • Проверка текущих прав перед изменением:
    ls -ld /путь/к/директории  # Просмотр прав директории
    ls -la /путь/к/директории/ # Просмотр прав содержимого
    
  • В современных системах могут использоваться расширенные атрибуты (setfacl, getfacl) для более тонкого контроля доступа, которые не меняются через chmod.

Правильное управление правами доступа — критически важный навык для DevOps-инженера, обеспечивающий как безопасность системы, так и корректную работу приложений и сервисов.