在 macOS 中设置自定掩码

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

以下高级步骤主要适用于系统管理员以及熟悉命令行的其他人员。更改文件权限和掩码时,需要特别小心。一旦操作失误,则可能会降低 Mac 上文件、文件夹或 App 的安全性,或阻止某些 App 运行。

关于权限和掩码

权限。储存在 Mac 上的每个文件、文件夹和 App 都有权限设置,这些设置将决定哪些用户帐户可以读取、写入或运行相应的文件、文件夹或 App。这些权限包括 POSIX 权限和访问控制列表 (ACL)。要增强或降低用户 POSIX 权限的限制,您可以调整权限的掩码值。

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

您可以在多个位置设置掩码,每个位置都会影响不同的 App。如果您设置了错误的掩码,则可能会导致失去文件的访问权限,或将访问权限授予其他用户。请参阅 chmod(1) 手册页面的模式部分,以了解更多信息。

适用于用户 App 的掩码

以管理员身份登录,然后在“终端”中输入以下命令,并将 nnn 替换为掩码值,例如 027 或 002。这个命令将为用户打开的每个 App(包括他们从命令行访问的 App 以及这些 App 创建的新文件)设置用户掩码。输入这个命令后,您可能需要重新启动 Mac。 

sudo launchctl config user umask nnn

如果“终端”显示了响应信息“Could not write configuration: No such file or directory”(无法写入配置:无此文件或目录),请确保启动磁盘存在 /private/var/db/com.apple.xpc.launchd/config 这样的文件夹。如果 config 文件夹缺失,请输入以下命令来创建这个文件夹,然后再试一次:

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

适用于系统进程的掩码

以管理员身份登录,然后在“终端”中输入以下命令,并将 nnn 替换为掩码值,例如 027 或 002。这个命令可针对用户在系统上下文中运行的每个监控程序设置用户的掩码。强烈建议不要这样做,因为这样可能会更改系统所用文件的权限。对权限的限制过于严格会阻止软件正常工作,而对权限的限制过于宽松会导致安全问题。输入这个命令后,您可能需要重新启动 Mac。 

sudo launchctl config system umask nnn

如果“终端”显示了响应信息“Could not write configuration: No such file or directory”(无法写入配置:无此文件或目录),请确保启动磁盘存在 /private/var/db/com.apple.xpc.launchd/config 这样的文件夹。如果 config 文件夹缺失,请输入以下命令来创建这个文件夹,然后再试一次:

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

进一步了解

如需进一步了解如何设置掩码,请在“终端”中输入 man launchctl

发布日期: