Как задавать права доступа к файлам в macOS
Быстрые ссылки
- Установка прав через Finder
- Установка прав через Терминал
macOS, как и другие современные операционные системы, позволяет ограничивать доступ к файлам с помощью системы прав доступа. Вы можете изменить права через приложение Finder или с помощью команды chmod в Терминале. Ниже — подробное руководство с рекомендациями по безопасности, шпаргалками и планом действий.
Установка прав через Finder
Если вы предпочитаете не использовать Терминал, Finder предоставляет понятный графический интерфейс для управления правами файлов и папок.
Откройте Finder из Dock внизу экрана — значок с улыбающимся логотипом Happy Mac.
В окне Finder щёлкните правой кнопкой по файлу или папке и выберите пункт «Сведения» (Get Info).

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

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

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

Важно: графический интерфейс не всегда показывает все дополнительные записи управления доступом (ACL) и расширенные атрибуты — для полного контроля используйте Терминал.
Установка прав через Терминал
Терминал даёт полный контроль и подходит для автоматизации. Команда chmod управляет правами чтения, записи и выполнения для владельца, группы и остальных пользователей.
Откройте Терминал через Launchpad → Другие → Terminal, либо через Spotlight (Cmd+Пробел и введите «Terminal»).

Просмотр текущих прав
Оригинальный пример в исходном материале показывает команду:
ls -@l file.txtЭта команда выводит список файлов с информацией о правах и расширенных атрибутах (параметры можно менять: ls -l@ file.txt также часто используется). Вывод команды начинается со строки прав — первых 11 символов, где:
- первый символ обозначает тип объекта:
-— файл,d— каталог,l— символическая ссылка и т.д.; - следующие девять символов разбиты на три группы по три: права владельца, права группы и права остальных;
- символы
r,w,xозначают чтение, запись и выполнение соответственно; дефис-значит отсутствие права.
Примеры комбинаций:
---— нет прав;r--— только чтение;rw-— чтение и запись;r-x— чтение и выполнение;rwx— чтение, запись и выполнение.
Если после строки прав стоит @, это означает наличие расширённых атрибутов (xattr). Если стоит +, это означает наличие ACL (Access Control List) — дополнительно к базовым правам.

Установка прав с помощью 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 # только владелец имеет доступТаблица соответствия символьного и числового форматов:
| Символы | Число | Значение |
|---|---|---|
| rwx | 7 | чтение, запись, выполнение |
| rw- | 6 | чтение, запись |
| r-x | 5 | чтение, выполнение |
| 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.
Практическая методика: как безопасно изменить права
- Снимите текущее состояние прав и ACL в файл (резервная копия):
ls -le@ /путь/к/файлу > /tmp/perms-backup.txt- Создайте резервную копию файла/папки (особенно для данных):
cp -a /путь/к/файлу /путь/к/файлу.bak- Примените изменения сначала к тестовой копии или к одному файлу.
- Проверьте работу приложения/сценария под разными пользователями.
- При проблемах восстановите предыдущие права, восстановив содержимое из
/tmp/perms-backup.txtвручную или восстановив бэкап.
Важно: chmod не сохраняет историю изменений, поэтому резервная копия вывода ls -le@ и копия данных — единственный надёжный способ отката.
SOP — стандартная процедура изменения прав (короткий playbook)
- Оцените цель: зачем менять права? (безопасность, совместный доступ, исправление ошибок)
- Зафиксируйте текущее состояние:
ls -le@. - Создайте бэкап данных:
cp -aили архивtar. - Выберите метод: Finder для одиночных файлов, chmod/chown/chgrp для автоматизации.
- Примените изменения на тестовой копии.
- Протестируйте от лица нужных пользователей.
- Документируйте результат и удалите временные резервные копии через контролируемый период.
Критерии приёмки
- Файл/папка доступны только тем пользователям, у кого должен быть доступ.
- Приложения и сервисы корректно работают после изменения прав.
- Изменения зафиксированы в журнале (включая старые права и дату/время).
Чек-листы по ролям
Администратор:
- Сохранить
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Примеры тест-кейсов и критерии приёмки
- Тест: изменить права файла на 600. Критерий: владелец может читать/писать, другие не видят файл.
- Тест: сделать скрипт исполняемым (chmod +x). Критерий: скрипт запускается пользователем с правами на выполнение.
- Тест: рекурсивное применение к папке проектов. Критерий: все файлы имеют ожидаемые права; бинарные файлы исполняемы, данные — нет.
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 вы потеряли доступ:
- Используйте бэкап:
cp -a file.txt.bak file.txt. - Если сохранили вывод
ls -le@, вручную восстановите права командойchmodиchmod +aпо необходимости.
- Используйте бэкап:
Чтобы восстановить права на основе сохранённого формата:
- Парсить сохранённый файл и применять соответствующие команды с
chmod/chown. - Для больших наборов файлов используйте скрипт, который читает резервный файл и применяет изменения.
- Парсить сохранённый файл и применять соответствующие команды с
Короткое резюме
Изменять права в macOS можно двумя основными способами: графически через Finder (удобно для одиночных файлов) и через Терминал (мощно и удобно для автоматизации). Всегда делайте резервные копии, сохраняйте текущее состояние прав, учитывайте ACL и расширённые атрибуты и применяйте принцип наименьших привилегий.
Важно: прежде чем менять права в системных каталогах, убедитесь, что вы понимаете возможные последствия и при необходимости проконсультируйтесь с администратором.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента