Гид по технологиям

Как задавать права доступа к файлам в macOS

• 8 min read • macOS • Обновлено 27 Nov 2025
Права доступа к файлам в macOS — Finder и chmod
Права доступа к файлам в macOS — Finder и chmod

Быстрые ссылки

  • Установка прав через Finder
  • Установка прав через Терминал

macOS, как и другие современные операционные системы, позволяет ограничивать доступ к файлам с помощью системы прав доступа. Вы можете изменить права через приложение Finder или с помощью команды chmod в Терминале. Ниже — подробное руководство с рекомендациями по безопасности, шпаргалками и планом действий.

Установка прав через Finder

Если вы предпочитаете не использовать Терминал, Finder предоставляет понятный графический интерфейс для управления правами файлов и папок.

Откройте Finder из Dock внизу экрана — значок с улыбающимся логотипом Happy Mac.

В окне Finder щёлкните правой кнопкой по файлу или папке и выберите пункт «Сведения» (Get Info).

Окно Finder: щёлкните правой кнопкой по файлу и выберите «Сведения» чтобы открыть параметры доступа

В окне «Сведения» найдите раздел «Совместный доступ и права доступа» (Sharing & Permissions) и сверните его, если он свернут. Нажмите стрелку рядом с разделом, чтобы развернуть список аккаунтов и групп и посмотреть текущие привилегии.

Раздел «Совместный доступ и права доступа» в окне «Сведения» показывает список пользователей и их привилегии

Если нужного пользователя или группы нет в списке, нажмите значок плюс (+) внизу, выберите нужную запись и нажмите «Выбрать» (Select), чтобы добавить её.

Выберите пользователя или группу и нажмите «Выбрать», чтобы добавить их в список прав доступа файла

Для изменения уровня доступа щёлкните по стрелке справа от текущего значения и выберите «Только чтение» (Read Only) или «Чтение и запись» (Read & Write). Права применяются сразу — после изменения можно закрыть окно «Сведения».

Установка уровня доступа для пользователя или группы в macOS через окно «Сведения»

Важно: графический интерфейс не всегда показывает все дополнительные записи управления доступом (ACL) и расширенные атрибуты — для полного контроля используйте Терминал.

Установка прав через Терминал

Терминал даёт полный контроль и подходит для автоматизации. Команда chmod управляет правами чтения, записи и выполнения для владельца, группы и остальных пользователей.

Откройте Терминал через Launchpad → Другие → Terminal, либо через Spotlight (Cmd+Пробел и введите «Terminal»).

Откройте приложение Терминал через Launchpad или Spotlight на macOS

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

Оригинальный пример в исходном материале показывает команду:

ls -@l file.txt

Эта команда выводит список файлов с информацией о правах и расширенных атрибутах (параметры можно менять: ls -l@ file.txt также часто используется). Вывод команды начинается со строки прав — первых 11 символов, где:

  • первый символ обозначает тип объекта: - — файл, d — каталог, l — символическая ссылка и т.д.;
  • следующие девять символов разбиты на три группы по три: права владельца, права группы и права остальных;
  • символы r, w, x означают чтение, запись и выполнение соответственно; дефис - значит отсутствие права.

Примеры комбинаций:

  • --- — нет прав;
  • r-- — только чтение;
  • rw- — чтение и запись;
  • r-x — чтение и выполнение;
  • rwx — чтение, запись и выполнение.

Если после строки прав стоит @, это означает наличие расширённых атрибутов (xattr). Если стоит +, это означает наличие ACL (Access Control List) — дополнительно к базовым правам.

Пример вывода ls показывающего права, тип и расширённые атрибуты файла в macOS

Установка прав с помощью chmod (символьный синтаксис)

Исходные примеры:

chmod u=rw,g=r,o=r file.txt

Значения: u — владелец (user), g — группа (group), o — остальные (others). Знак = задаёт точный набор прав (перезаписывает предыдущие).

Добавление прав:

chmod o+rw file.txt

Удаление прав:

chmod o-rw file.txt

Универсальная запись для всех:

chmod a+rwx file.txt

где a — все (all).

Числовой (октальный) синтаксис

Помимо символьного синтаксиса, chmod часто используют с тремя цифрами (например, 644, 755). Каждая цифра — сумма битов: 4 = чтение (r), 2 = запись (w), 1 = выполнение (x).

  • 7 = 4+2+1 = rwx
  • 6 = 4+2 = rw-
  • 5 = 4+1 = r-x
  • 4 = 4 = r–

Примеры:

chmod 644 file.txt   # владелец rw-, группа r--, остальные r--
chmod 755 script.sh  # владелец rwx, группа r-x, остальные r-x
chmod 700 secret     # только владелец имеет доступ

Таблица соответствия символьного и числового форматов:

СимволыЧислоЗначение
rwx7чтение, запись, выполнение
rw-6чтение, запись
r-x5чтение, выполнение
r–4только чтение
—0без прав

Рекурсивные изменения

Чтобы изменить права для каталога и всего его содержимого, используйте флаг -R:

chmod -R 755 /путь/к/папке

Будьте осторожны — рекурсивное изменение может сделать исполняемыми файлы, которые не должны быть исполняемыми, или наоборот, нарушить работу приложений.

Изменение владельца и группы

Иногда нужно не только изменить права, но и сменить владельца или группу:

sudo chown username file.txt      # сменить владельца
sudo chgrp staff file.txt         # сменить группу
sudo chown -R username:staff /dir # рекурсивно сменить владельца и группу

ACL и расширённые атрибуты

macOS поддерживает ACL и расширённые атрибуты (xattr). Обозначения в ls:

  • @ — есть xattr (расширённые атрибуты);
  • + — есть дополнительные ACL-записи.

Посмотреть ACL можно командой:

ls -le file.txt

Добавление ACL-записи:

sudo chmod +a "username allow read,write" file.txt

Просмотр xattr:

xattr -l file.txt

Удаление xattr:

xattr -d com.apple.quarantine file.txt

Не меняйте ACL и xattr без понимания их назначения — это может привести к неожиданному предоставлению доступа приложениям (например, Finder или сторонним сервисам).

Распространённые сценарии и примеры

  • Сделать скрипт исполняемым:
chmod +x build.sh
  • Дать полные права владельцу и чтение/выполнение всем остальным (типично для каталогов и скриптов):
chmod 755 /usr/local/bin/mytool
  • Сделать файл доступным только владельцу:
chmod 600 ~/.ssh/id_rsa
  • Дать всей группе запись в папке (совместная работа):
chmod -R g+rw /shared/project
chmod g+s /shared/project   # установить SGID, новые файлы наследуют группу

Когда это не работает — распространённые ошибки и причины

  • Файловая система не поддерживает POSIX-права (например, FAT32 на внешнем диске) — права либо игнорируются, либо отображаются некорректно.
  • У вас нет прав администратора для изменения некоторых системных файлов — используйте sudo с осторожностью.
  • ACL или xattr перекрывают базовые права — chmod может не учитывать дополнительные записи ACL.
  • SIP (System Integrity Protection) защищает системные каталоги — изменить права в защищённых областях невозможно без отключения SIP.

Практическая методика: как безопасно изменить права

  1. Снимите текущее состояние прав и ACL в файл (резервная копия):
ls -le@ /путь/к/файлу > /tmp/perms-backup.txt
  1. Создайте резервную копию файла/папки (особенно для данных):
cp -a /путь/к/файлу /путь/к/файлу.bak
  1. Примените изменения сначала к тестовой копии или к одному файлу.
  2. Проверьте работу приложения/сценария под разными пользователями.
  3. При проблемах восстановите предыдущие права, восстановив содержимое из /tmp/perms-backup.txt вручную или восстановив бэкап.

Важно: chmod не сохраняет историю изменений, поэтому резервная копия вывода ls -le@ и копия данных — единственный надёжный способ отката.

SOP — стандартная процедура изменения прав (короткий playbook)

  1. Оцените цель: зачем менять права? (безопасность, совместный доступ, исправление ошибок)
  2. Зафиксируйте текущее состояние: ls -le@.
  3. Создайте бэкап данных: cp -a или архив tar.
  4. Выберите метод: Finder для одиночных файлов, chmod/chown/chgrp для автоматизации.
  5. Примените изменения на тестовой копии.
  6. Протестируйте от лица нужных пользователей.
  7. Документируйте результат и удалите временные резервные копии через контролируемый период.

Критерии приёмки

  • Файл/папка доступны только тем пользователям, у кого должен быть доступ.
  • Приложения и сервисы корректно работают после изменения прав.
  • Изменения зафиксированы в журнале (включая старые права и дату/время).

Чек-листы по ролям

Администратор:

  • Сохранить ls -le@ для всех затрагиваемых объектов.
  • Создать бэкап.
  • Выполнить изменения от имени root при необходимости.
  • Проверить ACL и xattr.

Разработчик:

  • Проверить права на исполняемые файлы (+x).
  • Убедиться, что приватные ключи имеют права 600.

Обычный пользователь:

  • Использовать Finder для простых задач.
  • Не менять права в системных папках.

Риски и mitigations

  • Риск: случайно сделать критичный файл исполняемым или доступным всем. Мера: тестирование на копии, использование -R только при необходимости.
  • Риск: потеря доступа к данным. Мера: резервное копирование перед изменениями.
  • Риск: ACL/xattr даёт доступ приложениям. Мера: проверять ls -le@ и xattr -l.

Совместимость и особенности macOS

  • APFS поддерживает полные POSIX-права, но внешние диски (FAT32, exFAT, NTFS) могут не поддерживать или маппить их иначе.
  • SMB/NFS — сетевые протоколы могут интерпретировать права по-своему; при шаринге проверьте права на сервере.
  • SIP защищает системные каталоги; менять права в /System, /usr/bin и т.п. не рекомендуется.
  • Начиная с macOS Catalina и новее, у приложений появились дополнительные механизмы доступа (помимо прав файлов): запросы разрешений к камере, микрофону, папкам Документы/Загрузки.

Безопасность и конфиденциальность данных

  • Для файлов с личными данными (PII) ограничьте доступ только владельцу и бэкапируйте их зашифрованно.
  • При совместной работе используйте группы и SGID на папках, чтобы новые файлы унаследовали группу доступа.
  • Для ключей SSH используйте права 600 и храните их в защищённой папке.

Шпаргалка команд (cheat sheet)

ls -le@ file.txt        # показать права, ACL и xattr
chmod u=rw,g=r,o=r file.txt
chmod 644 file.txt
chmod 755 script.sh
chmod +x script.sh
chmod -R 775 /path/to/dir
sudo chown user:group file.txt
ls -l@                    # показать расширённые атрибуты
xattr -l file.txt          # посмотреть xattr
sudo chmod +a "user allow read,write" file.txt  # добавить ACL

Примеры тест-кейсов и критерии приёмки

  1. Тест: изменить права файла на 600. Критерий: владелец может читать/писать, другие не видят файл.
  2. Тест: сделать скрипт исполняемым (chmod +x). Критерий: скрипт запускается пользователем с правами на выполнение.
  3. Тест: рекурсивное применение к папке проектов. Критерий: все файлы имеют ожидаемые права; бинарные файлы исполняемы, данные — нет.

Mental models и эвристики

  • Модель «три слоя»: владелец — группа — остальные. Настраивайте минимально необходимые права.
  • Принцип наименьших привилегий: давайте только то, что нужно для работы.
  • Проверка в два шага: сначала посмотреть (ls), затем изменить (chmod), затем проверить снова (ls).

Диаграмма принятия решения (Mermaid)

flowchart TD
  A[Нужно изменить права?] -->|Да| B{Это один файл или много?}
  B --> C[Один файл] --> D[Использовать Finder]
  B --> E[Много файлов/скрипт] --> F[Использовать Терминал]
  F --> G{Требуется ACL или xattr?}
  G -->|Да| H[Использовать chmod +a / xattr]
  G -->|Нет| I[Использовать chmod/chown/chgrp]
  A -->|Нет| Z[Оставить как есть]

Примеры ошибок и способы отката

  • Если после chmod вы потеряли доступ:

    1. Используйте бэкап: cp -a file.txt.bak file.txt.
    2. Если сохранили вывод ls -le@, вручную восстановите права командой chmod и chmod +a по необходимости.
  • Чтобы восстановить права на основе сохранённого формата:

    1. Парсить сохранённый файл и применять соответствующие команды с chmod/chown.
    2. Для больших наборов файлов используйте скрипт, который читает резервный файл и применяет изменения.

Короткое резюме

Изменять права в macOS можно двумя основными способами: графически через Finder (удобно для одиночных файлов) и через Терминал (мощно и удобно для автоматизации). Всегда делайте резервные копии, сохраняйте текущее состояние прав, учитывайте ACL и расширённые атрибуты и применяйте принцип наименьших привилегий.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро