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

Как поменять права в Linux

2.0 Middle🔥 91 комментариев
#Инструменты тестирования

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

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

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

Управление правами в Linux: основные команды и практики

В Linux права доступа к файлам и директориям управляются через систему permissions, которая основана на трех основных категориях пользователей: владелец (owner), группа (group) и другие пользователи (others). Для изменения прав используются команды chmod, chown и chgrp.

Основные команды для изменения прав

1. Команда chmod (change mode)

Эта команда изменяет права доступа для владельца, группы и других пользователей. Права могут задаваться двумя способами: символьным (symbolic) и числовым (absolute).

Символьный метод использует буквенные обозначения:

  • u – владелец (user)
  • g – группа (group)
  • o – другие (others)
  • a – все категории (all)
  • Права: r (read), w (write), x (execute)

Пример добавления права чтения для группы:

chmod g+r filename.txt

Пример удаления права выполнения для всех:

chmod a-x script.sh

Числовой метод использует восьмеричные числа (0-7), где:

  • 4 = чтение (r)
  • 2 = запись (w)
  • 1 = выполнение (x)

Пример установки прав rwxr-xr-- (владелец: все права, группа: чтение и выполнение, другие: только чтение):

chmod 754 file.sh

Расчет: владелец: 4+2+1=7, группа: 4+1=5, другие: 4=4.

2. Команда chown (change owner)

Эта команда изменяет владельца файла или директории. Основной синтаксис:

chown newowner filename

Пример изменения владельца и группы одновременно:

chown user:group filename

Для рекурсивного изменения владельца всей директории:

chown -R user:group /path/to/directory

3. Команда chgrp (change group)

Команда изменяет только группу файла или директории:

chgrp newgroup filename

Специальные права и атрибуты

Права SUID, SGID и Sticky Bit

  • SUID (Set User ID) – файл выполняется с правами владельца, даже если запущен другим пользователем. Числовое значение: 4000.
  • SGID (Set Group ID) – аналогично, но для группы. Числовое значение: 2000.
  • Sticky Bit – для директорий: пользователи могут удалять только свои файлы (как в /tmp). Числовое значение: 1000.

Пример установки SUID:

chmod u+s executable_file

Числовой метод с sticky bit:

chmod 1777 /shared_directory

Практические примеры и рекомендации

Базовые сценарии использования:

  • Скрипты исполняемые: обычно требуют права rwxr-xr-x (755)
chmod 755 myscript.sh
  • Конфигурационные файлы: часто rw-r--r-- (644) для защиты от случайного изменения
chmod 644 config.cfg
  • Приватные файлы: rw------- (600) для ограничения доступа только владельцу
chmod 600 private.key

Рекурсивные изменения для проектов:

При развертывании веб-проекта часто требуется установить правильные права для всей директории:

# Для содержимого: владелец - полные права, группа и другие - только чтение
chmod -R 755 /var/www/html/
# Для данных: более строгие права
chmod -R 644 /var/www/html/data/

Проверка текущих прав:

Перед изменением прав всегда полезно проверить текущее состояние:

ls -l filename
ls -la directory/

Особенности и лучшие практики

  1. Минимальные необходимые права – принцип безопасности: давать только необходимые права для выполнения задач.
  2. Групповые права – эффективное управление через группы для коллективной работы.
  3. Рекурсивные изменения с осторожностью-R может непреднамеренно изменить права для большого числа файлов.
  4. Символьный метод для точных изменений – удобен для добавления/удаления конкретных прав без расчета чисел.
  5. Числовой метод для стандартных наборов – быстрее для известных комбинаций (755, 644, etc).

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