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

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

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

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

Разрешения

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

Строгость настройки прав доступа POSIX можно регулировать с помощью значений umask.

Значения umask

Права доступа POSIX для файла могут быть представлены трехзначным числом. Такой способ представления прав доступа используется в программе «Терминал». Каждая цифра от нуля до семи. При создании файла значение umask вычитается из значения по умолчанию (обычно 666 для файлов и 777 для папок) для определения прав доступа к новому файлу или новой папке.

Например, при значении umask по умолчанию 022 задаются права доступа 644 для новых файлов и 755 для новых папок. Эти права доступа разрешают группам и другим пользователям читать файлы и открывать папки, но вносить изменения может только владелец. 

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

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

Значение umask для программ пользователя в macOS High Sierra, macOS Sierra, OS X El Capitan и OS X Yosemite

В OS X Yosemite 10.10.3 и более поздних версий войдите как администратор и выполните следующую команду в программе «Терминал»:

sudo launchctl config user umask nnn

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

Эта команда задает пользовательское значение umask для всех открываемым пользователем программ, таких как Finder, TextEdit или Final Cut Pro. Это же значение umask задается для всех программ, доступных пользователю из командной строки. Кроме того, эта команда контролирует права доступа для новых файлов, создаваемых соответствующими программами.

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

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

После создания этой папки выполните команду sudo launchctl config user umask nnn повторно. Для получения дополнительных сведений о настройке umask в OS X Yosemite выполните команду man launchctl.

Umask для системных процессов в OS X Yosemite

В OS X Yosemite 10.10.3 и более поздних версий войдите как администратор и выполните следующую команду в программе «Терминал»:

sudo launchctl config system umask nnn

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

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

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

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

Для получения дополнительных сведений о настройке значения umask в OS X Yosemite выполните команду man launchctl.

Значение umask для программ пользователя в OS X Mavericks и более ранних версий

В OS X Mavericks и более ранних версий создайте файл /etc/launchd-user.conf, содержащий строку umask nnn. Вместо nnn подставьте нужное значение umask, такое как 027 или 002. Этот файл задает значение umask для всех открываемых пользователем программ, таких как Finder, TextEdit или Final Cut Pro. Кроме того, он контролирует права доступа для новых файлов, создаваемых соответствующими программами.

ОС OS X Lion необходимо обновить до версии 10.7.4 или более поздней. После обновления пользовательское значение umask применяется к файлам и папкам, создаваемым в программе Finder.

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

В версиях OS X до Yosemite создайте файл /etc/launchd.conf, содержащий строку umask nnn. Вместо nnn подставьте нужное значение umask, такое как 027 или 002. Этот файл задает значение umask для всех процессов. Настоятельно не рекомендуется изменять его, поскольку это приведет к изменению прав доступа для файлов, используемых системным ПО. Слишком ограничительная настройка разрешений может препятствовать работе зависимого программного обеспечения. Слишком открытая настройка разрешений может создавать проблемы с безопасностью.

Параметр umask для определенного процесса LaunchAgent или LaunchDaemon

В Mac OS X 10.4 и более ранних версий опытные администраторы могут задавать отдельные значения umask для определенных процессов LaunchAgent или LaunchDaemon. Для этого следует добавить значение umask в файл launchd.plist. Эта настройка переопределяет значение umask в файле /etc/launchd.conf или /etc/launchd-user.conf только для соответствующего процесса. Для получения дополнительных сведений об этом варианте выполните команду man launchd.plist.

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