如何更改 Mac 上的文件权限并控制对其文件和目录的访问

已发表: 2021-07-14

文件系统为操作系统上的文件和目录提供属性,以帮助您确定计算机上的哪些用户可以读取、修改或执行其文件和目录的内容。

change file permissions on Mac

大多数操作系统要么使用传统的 Unix 权限,要么使用 ACL(访问控制列表)权限来控制文件和目录访问。

谈到 macOS,操作系统在 10.3 及更高版本上使用 Apple 文件系统 (APFS)。 由于 APFS 支持传统的 Unix 权限,它使您能够为不同的用户和组更改 Mac 上文件和目录的权限。

因此,如果您想更改 Mac 上用户的权限以限制他们对系统文件和目录的访问,本指南应该会指导您完成。

目录

了解 macOS 文件权限

首先,我们先来看看 macOS 提供的文件和目录权限。 macOS 源自 Unix 操作系统,支持 Unix 权限集,包括以下权限:

  • 读取:授予读取文件的能力。 与目录一起使用时,此权限提供查看目录名称的能力; 但不是它的内容。
  • 写入:授予修改文件的能力。 对于目录,它通过提供修改目录中的条目以允许创建、重命名和删除文件的能力来工作。
  • 执行:授予执行(程序)文件的能力。 当为目录设置时,它允许访问目录的内容(子目录和文件)并提供搜索功能来访问文件的内容——授予文件也具有读取权限。

macOS 允许您管理 Mac 上三个类的这些权限,即usergroupothers 。 其中,用户类是文件的创建者/所有者,而代表系统上共享相同权限的一组不同用户,其他用户指既不是所有者也不是任何组成员的用户.

现在,根据您喜欢 GUI(图形用户界面)还是 CLI(命令行界面),您可以使用 Finder 或终端来更改 Mac 上的文件权限。

使用 Finder 在 Mac 上更改文件权限

Finder 提供了一种在 Mac 上更改文件和目录权限(或文件夹权限)的最简单方法。 因此,如果您是 macOS 新手并且不习惯使用终端,您可以使用 Finder 修改权限。

以下是 Mac 上不同文件和目录权限的细分以及它们在 Finder 中的工作方式:

  • 读写:允许用户打开文件或目录并对其进行修改。
  • 只读:允许用户打开文件或目录,但不能对其进行任何更改。
  • 只写(投递箱):允许用户仅将项目保存到投递箱,投递箱是公用文件夹中的一个文件夹。
  • 无访问权限:阻止对文件或目录的完全访问。

现在,一旦您对这些权限有所了解,就可以继续执行以下步骤,使用 Finder 在 Mac 上设置文件权限。 但是请注意,您需要成为系统管理员才能更改系统上不同用户的文件权限。

  1. 打开 Finder 并导航到要修改其权限的文​​件或目录。
  2. 右键单击文件/目录,然后从上下文菜单中选择“获取信息”选项,以获取 Mac 上所有帐户和用户组及其权限类别的列表。
  3. 信息窗口中,向下滚动到共享和权限部分的底部,以查看谁拥有哪些权限。
    changing file permissions on Mac using Finder
  4. 点击右下角的挂锁图标并输入管理员密码以解锁对权限修改的访问。
  5. 根据您要修改的类的权限,在Name下选择它,在Privilege选项卡中点击它旁边的箭头按钮,然后从弹出菜单中选择一种权限类型。
    change file permissions on Mac using Finder

如果您想为 Mac 上未在“共享和权限”下列出的新用户设置权限,请单击加号按钮并点击“用户”。 在下一个对话框中,输入用户名和密码,然后点击Create Account 。 添加后,从用户菜单中选择它,然后单击选择按钮。 此后,您可以按照上述步骤设置权限设置。

完成权限设置后,再次单击锁定图标以锁定权限修改,然后关闭信息窗口。

如果您不小心弄乱了某些权限,您可以通过单击操作弹出菜单(或三点菜单)按钮并点击Revert changes来撤消它们。

使用终端更改 Mac 上的文件权限

与 Finder 不同,使用终端更改文件和目录权限有点复杂。 它需要熟悉终端命令并理解文件权限的字母和数字表示(或八进制权限符号)才能有效使用。

但是,一旦您熟悉了它,您就可以利用它提供的对权限的精细控制来有效地更改文件和目录的权限。

也在 TechPP 上

这是让您熟悉字母和数字权限表示的入门指南。

在 Unix 文件权限中,权限集由十一个字符组成。 其中,第一个字符标识该项目是文件还是目录; 以下九个字符标识权限; 最后一个字符表示项目是否带有扩展属性。

谈到它们的表示,第一个字符始终是连字符 ( ) 或字母 ( d ),其中连字符表示文件,而 d 表示目录。

集合中接下来的九个字符分为三个组/类:用户、组和其他。 这些组中的每一个都包含三个字符,这些字符被以下任何字符占用:–(无权限)、 r (读取)、 w (写入)和x (执行)。

当放在一起时,这些字符形成以下权限:

  • 表示没有读、写、执行权限。
  • r–仅显示读取权限。
  • rw-表示文件只能读写。
  • rwx表示该文件可以被读取、写入和执行。
  • rx表示该文件只能被读取和执行。

另一方面,权限的数字表示将上述字符替换为数字。 它涉及使用总共八个数字,这就是它们所代表的含义:

  • 0 – 没有权限
  • 1 – 执行
  • 2 – 写
  • 3 – 执行和写入
  • 4 – 阅读
  • 5 – 读取并执行
  • 6 – 读写
  • 7 – 读、写和执行

最后,权限表示法中的最后一个(第十一个)字符是@ 。 它被称为扩展属性,对于 macOS 上的特定文件和目录是唯一的。

有了基础知识,您可以借助以下步骤在终端中设置文件或目录权限:

打开终端应用程序——通过 Spotlight 搜索(命令 + 空格)或Finder > Applications > Terminal.app

导航到要修改其权限的目录或文件。 为此,运行ls命令列出项目(文件和目录)并cd进入它们。

进入所需目录后,使用以下语法运行命令:

首先,让我们通过运行来识别文件或目录的当前权限:

ls -al file_name

change file permissions on Mac using Terminal

要更改所有类(用户、组和其他)的读、写、执行权限,使用户具有所有三个权限,组具有读写权限,其他只有读权限,您需要使用chmod命令。 以下是有关如何使用它的不同语法:

chmod ugo+rwxrw-r-- file_name

在八进制权限表示法中,您将运行:

chmod 764 file_name

如果您在将权限从字母表示转换为数字表示时遇到问题,您可以借助 chmod 计算器进行快速转换。

当您想为所有类提供读写访问权限时:

chmod a+rw file_name

或者

chmod 666 file_name

当您要删除组和其他人的执行权限时,请在终端窗口中运行以下命令:

chmod ug-x file_name

或者

chmod 766 file_name

为所有类启用目录中多个文件(相同类型)的读取和写入权限:

chmod a+rw *.txt

…其中标志a用于针对所有三个类的用户权限:用户、组和其他。

或者

chmod 666 *.txt

当然,这些只是您可以使用终端更改 Mac 上的文件权限的几个用例,还有许多其他场景可以派上用场。 而且,上面的示例应该可以帮助您在这种情况下更有效地理解和设置文件和目录的权限。

在 Mac 上成功更改文件权限

如果您仔细阅读了该指南,您应该对 macOS 上的各种文件和目录权限有所了解。 随后,根据您的喜好(基于命令的界面或图形界面),您应该能够相应地选择一种方法来更改 Mac 上的文件权限。