在 macOS 中设置自定掩码

Mac 上的每个文件或文件夹都有一组权限。在您创建新文件或文件夹时,掩码会确定这些权限设置。

关于权限和掩码

以下说明适用于企业用户。更改文件权限和掩码时,请格外小心。如果文件权限和掩码设置有误,则会降低 Mac 上文件、文件夹或应用的安全性。此外,还可能会导致某些应用无法正常工作。

权限

储存在 Mac 启动磁盘或已连接宗卷上的每个文件、文件夹和应用都具有权限设置。这些权限用于确定哪些用户帐户可以读取、写入或运行文件、文件夹或应用。这些权限包括 POSIX 权限和访问控制列表 (ACL)。 

要使用户的 POSIX 权限的限制较多或较少,您可以调整权限的掩码值。

掩码

一个三位数可以表示文件的 POSIX 权限。从“终端”查看时,您可能会看到以这种格式表示的权限。每个数字都介于 0 到 7 之间。创建文件时,从默认值(对于文件,通常为 666,对于文件夹,通常为 777)中减去掩码值来确定新的文件或文件夹的权限。

例如,默认掩码 022 会针对新文件设置权限 644,并针对新文件夹设置权限 755。这些权限允许群组和其他用户读取文件和打开文件夹,但只有所有者才可以进行更改。 

继续之前,请务必了解掩码。如果您错误地设置了掩码,可能会导致意外失去文件的访问权限,或将访问权限授予其他用户。请参阅 chmod(1) 手册页面的模式部分,以了解更多信息。

您可以在多个不同的位置设置掩码。每个位置都会影响不同的应用。

适用于 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 替换为所需的掩码值,例如 027 或 002。运行这个命令后,您可能必须重新启动 Mac。

这个命令可为用户打开的每个应用(例如 Finder、TextEdit 或 Final Cut Pro)设置用户掩码。此外,它还会为用户从命令行访问的每个应用设置掩码。这个命令还可控制针对这些应用创建的新文件所设置的权限。

如果您看到信息“无法写入配置:没有这样的文件或目录”,请确保您拥有 /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 命令。有关如何在 OS X Yosemite 中设置掩码的更多信息,请运行 man launchctl 命令。

适用于 OS X Yosemite 中系统进程的掩码

在 OS X Yosemite 10.10.3 及更高版本中,以管理员身份登录并在“终端”中运行以下命令:

sudo launchctl config system umask nnn

nnn 替换为所需的掩码值,例如 027 或 002。运行这个命令后,您可能必须重新启动 Mac。

这个命令可针对用户在系统上下文中运行的每个监控程序设置用户的掩码。强烈建议不要更改此值,因为这样可能会更改系统软件所用文件的权限。如果所设置权限的限制过严,相关软件可能无法正常工作。如果所设置权限的限制过宽,则可能导致安全性问题。

如果您看到信息“无法写入配置:没有这样的文件或目录”,请确保您拥有 /private/var/db/com.apple.xpc.launchd/config 文件夹。如果此文件夹缺失,请使用以下命令创建它:

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

有关如何在 OS X Yosemite 中设置掩码的更多信息,请运行 man launchctl 命令。

适用于 OS X Mavericks 及更低版本中用户应用程序的掩码

在 OS X Mavericks 及更低版本中,创建一个包含 umask nnn 的 /etc/launchd-user.conf 文件。将 nnn 替换为所需的掩码值,例如 027 或 002。这个命令可为用户打开的每个应用(例如 Finder、TextEdit 或 Final Cut Pro)设置用户掩码。此命令还可控制针对这些应用创建的新文件所设置的权限。

如果您使用 OS X Lion,则应该更新至 OS X Lion 10.7.4 或更高版本。更新后,用户掩码将应用于在 Finder 中创建的文件和文件夹。

适用于 OS X Mavericks 及更低版本中系统进程的掩码

在版本低于 Yosemite 的 OS X 中,创建一个包含 umask nnn 的 /etc/launchd.conf 文件。将 nnn 替换为所需的掩码值,例如 027 或 002。这个命令可为每个进程设置掩码。强烈建议不要更改此值,因为这样可能会更改系统软件所用文件的权限。如果所设置权限的限制过严,相关软件可能无法正常工作。如果所设置权限的限制过宽,则可能导致安全性问题。

适用于特定 LaunchAgent 或 LaunchDaemon 的掩码

在 Mac OS X 10.4 及更高版本中,高级管理员可针对特定的 LaunchAgent 或 LaunchDaemon 设置单独的掩码。要执行此操作,他们可以向 launchd plist 文件添加一个掩码值。此设置将只针对该进程覆盖 /etc/launchd.conf 或 /etc/launchd-user.conf 中的掩码设置。有关这个选项的更多信息,请运行 man launchd.plist 命令。

发布日期: