Настройка пользовательского значения umask в macOS

Каждый файл и папка на компьютере Mac имеет набор разрешений. При создании нового файла или папки параметр umask определяет эти разрешения.

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

О разрешениях и значениях umask

Разрешения. Каждый файл, папка и приложение, хранящиеся на компьютере Mac, имеют настройки разрешений, которые определяют учетные записи пользователей с правами на чтение, запись и запуск файлов, папок или приложений. К ним относятся права доступа POSIX и списки управления доступом (ACL). Строгость настройки прав доступа POSIX можно регулировать с помощью значений umask.

Значения umask. Права доступа POSIX для файла могут быть представлены трехзначным числом. Такой способ представления прав доступа используется в Терминале. Каждая цифра находится в диапазоне от 0 до 7. При создании файла значение umask вычитается из значения по умолчанию (обычно 666 для файлов и 777 для папок) для определения прав доступа к новому файлу или новой папке. Например, при значении umask по умолчанию 022 задаются права доступа 644 для новых файлов и 755 для новых папок.

Значение umask можно задать в нескольких местах, каждое из которых будет влиять на разные приложения. Неверно установив значение umask, можно потерять доступ к файлам или предоставить доступ другим пользователям. Дополнительные сведения см. в разделе «MODES» на странице руководства chmod(1).

Значение umask для пользовательских приложений

Войдите в систему как администратор и введите в Терминале указанную ниже команду, заменив nnn на значение umask, например 027 или 002. Эта команда задает пользовательское значение umask для каждого открытого пользователем приложения, включая приложения, к которым осуществляется доступ из командной строки, и новые файлы, создаваемые этими приложениями. После ввода этой команды может потребоваться перезапуск компьютера Mac.

sudo launchctl config user umask nnn

Если в Терминале появляется сообщение «Не удалось записать конфигурацию: отсутствует указанный файл или каталог», убедитесь, что на загрузочном диске есть папка /private/var/db/com.apple.xpc.launchd/config. Если папка config отсутствует, повторите попытку, предварительно введя указанную ниже команду для ее создания.

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

Значение umask для системных процессов

Войдите в систему как администратор и введите в Терминале указанную ниже команду, заменив nnn на значение umask, например 027 или 002. Эта команда задает пользовательское значение umask для всех демонов, запускаемых пользователем в системном контексте. Настоятельно не рекомендуется изменять это значение, поскольку в результате могут быть изменены права доступа для файлов, используемых системой. Слишком строгие разрешения могут препятствовать работе программного обеспечения, а слишком широкие — создавать проблемы с безопасностью. После ввода этой команды может потребоваться перезапуск компьютера Mac.

sudo launchctl config system umask nnn

Если в Терминале появляется сообщение «Не удалось записать конфигурацию: отсутствует указанный файл или каталог», убедитесь, что на загрузочном диске есть папка /private/var/db/com.apple.xpc.launchd/config. Если папка config отсутствует, повторите попытку, предварительно введя указанную ниже команду для ее создания.

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

Дополнительная информация

Чтобы получить дополнительные сведения о том, как задать значение umask, введите в Терминале команду man launchctl.

Дата публикации: