所有文章

不用终端,在 Mac 上更改文件权限或锁定文件

· 阅读约 7 分钟

想让一个脚本双击就能运行,想让一个文件夹别人能读却不能改,想让一份签好的合同不会被误覆盖?在 Mac 上,这些都取决于权限和锁定,而这两样都可以不敲一条命令就改好。

简而言之:

  • 在访达中: 选中项目,选取 文件 › 显示简介(⌘I)。在“通用”部分勾选 已锁定 即可锁定。底部的 共享与权限 可以为你、你所在的组和所有人设定读写、只读或无访问权限。这里没有任何设置可以控制执行权限。
  • 在 Folia Files 中: 选中项目,按 ⌘I(文件 › 信息)。权限 部分为 所有者、组 和 所有人 各提供 读取、写入 和 执行 复选框,显示你在 chmod 后面要输入的数字,还有一个 已锁定 复选框。每次点按立即生效,⌘Z 可以撤销。

权限和锁定是两回事

Mac 上的每个文件和文件夹都有一个所有者(通常是你)和一个组(个人文件夹里的文件是 staff)。所有者、组以及其他所有人,各有三种权限:

  • 读取: 打开文件;对文件夹来说,是查看其中的内容。
  • 写入: 修改文件;对文件夹来说,是在其中添加、重命名和删除项目。
  • 执行: 把文件当作程序或脚本运行;对文件夹来说,是能否进入它。

终端用字母表示它们,例如 rw-r--r--,或者用数字:读取为 4,写入为 2,执行为 1,按所有者、组、所有人的顺序分别相加。644(rw-r--r--)是典型的文稿:你可以读写,其他人只能读。755(rwxr-xr-x)是典型的文件夹或脚本。

锁定 不是一种权限,而是加在项目本身上的一个标记(用终端的话说是 uchg)。只要它存在,无论权限如何,这个项目都不能被修改、重命名或删除,连你自己也不行。对必须保持原样的文件,比如签好的合同、模板、归档的发票,它正合适。

在访达中:显示简介

锁定文件

  1. 选中文件,选取 文件 › 显示简介(⌘I)。
  2. 在 通用 部分勾选 已锁定。

取消勾选即可解锁。App 仍然可以打开被锁定的文件,但不能把修改存储到其中;把被锁定的项目移到废纸篓之前,访达也会先请你确认。

更改谁可以读写

  1. 在同一个窗口里,打开底部的 共享与权限。
  2. 如果右下角的锁是锁上的,点按它,然后输入管理员的名称和密码。
  3. 在每个名称旁边选择一种权限:读写、只读或无访问权限。文件夹还多一种只写,相当于投件箱:别人可以往里放文件,却看不到里面有什么。
  4. 对文件夹来说,窗口底部的操作菜单里有一个命令,可以把同样的权限应用到其中的所有项目。请小心:它会一次改动所有项目,而且无法撤销。

一份 644 的文稿会显示三行:你是读写,staff 和 everyone 是只读。

访达做不到的事

  • 执行权限。 没有任何一项权限能打开或关闭它。这是典型的死胡同:双击一个下载来的 .command 脚本,macOS 会说你没有相应的访问权限,并让你去看“显示简介”,可那里根本没有这一项。
  • 数字。 这个窗口从不显示 644 或 755,而教程、网站主机或 README 要你填的恰恰是这个数字。

顺便一提:在终端里

chmod u+x backup.command 让你自己可以运行一个脚本,chmod 644 notes.txt 设定数字,chflags uchg contract.pdf 锁定文件,chflags nouchg contract.pdf 解锁;ls -l 可以看到字母形式。要在正确的文件夹里打开终端,请看如何在当前文件夹打开终端。

在 Folia Files 中:“信息”里的“权限”部分

Folia Files 把这一切集中在一处,就在所选项目的信息里:执行权限、数字和锁定并排在一起。

在哪里

  • 文件 › 信息(⌘I),或右键菜单中的 信息,会为该项目打开一个信息窗口,显示所有部分。选中最多十个项目,每个都会有自己的窗口。
  • 文件 › 显示信息模块(⌃⌘I)会显示信息模块,它随你的选择而变化。和其他模块一样,它可以放在右侧边栏、左侧边栏的列表下方,或者单独的面板里。只要你没有在模块齿轮菜单的 显示的字段 中取消它,权限 就会显示。

同一个信息里还有项目的标签和它的访达注释(详见如何给文件或文件夹添加备注)。

读取、写入、执行

权限 部分是一张小表格:横向是 读取、写入 和 执行,纵向是 所有者、组 和 所有人,所有者和组的名称显示在各自的标签下面。表格下方的数字和字母(644 rw-r--r--)随每次点按变化,你可以准确地设成别人要求的样子。

左边是 Alex 的文稿文件夹,选中了租赁合同 PDF;右边的面板里是信息模块:“权限”部分显示所有者(alex)、组(staff)和所有人的读取、写入和执行,644 rw-r--r--,以及“已锁定”复选框

每个复选框一点按就生效。没有要打开的锁,也没有 应用 按钮。

让脚本可以执行

  1. 选中脚本,按 ⌘I。
  2. 在 权限 中,勾选 所有者 一行的 执行。数字从 644 变成 744。
  3. 如果使用这台 Mac 的其他人也要运行它,再为 组 和 所有人 勾选 执行:755。

锁定文件

勾选表格下方的 已锁定,取消勾选即可解锁。它和访达里的复选框是同一个标记,所以访达也会把这个文件显示为已锁定,反过来也一样。被锁定的项目也不接受权限更改:先解锁,改好权限,再重新锁定。

撤销更改

点错了复选框?在同一个窗口里按 ⌘Z(编辑 › 撤销),之前的权限或之前的锁定状态就会回来。⇧⌘Z 可以重做,每次点按都是单独的一步。这些更改不会出现在 操作 的历史记录里,所以 ⌘Z 就是回头的办法;在信息窗口里,要在关闭它之前操作。

文件夹

对文件夹来说,执行 决定了能否进入它。所以文件夹通常是 755:只有 读取 是打不开的。

项目文件夹中选中了 Atlas 文件夹,它的信息显示在一个面板里:755 rwxr-xr-x,所有者、组和所有人的“执行”都已勾选

如果你在自己的某个文件夹上取消了 所有者 的 执行,就再也打不开它了,但仍然可以在它的上层文件夹里选中它,重新勾选。

Folia Files 不会更改的东西

  • 属于别人的项目。 macOS 只允许项目的所有者更改其权限(或者输入密码的管理员),而 Folia Files 从不索要这个密码。点按一个属于 root 的文件的复选框,它会弹回原样,表格下方出现一行橙色文字:“更改被拒绝:你不是所有者(root)。”对于这类项目,网站版有 文件 › “访达”简介窗口(⌥⌘I),可以为同一个项目打开访达的“显示简介”窗口,连同那把锁。
  • 一次处理多个项目。 只有显示单个项目时才会出现 权限 部分,也没有把权限应用到文件夹全部内容的功能。
  • 所有者和组。 名称只显示,不能更改;访达可以加到“共享与权限”列表里的其他用户或组,也不会出现在这张表格中。
  • 只读磁盘。 在那里什么都改不了,复选框会弹回原样。

最好别碰的东西

只更改你自己的文稿、脚本和项目文件夹的权限,别动 macOS 和 App 所依赖的东西。/System 和 /Library 文件夹、“应用程序”文件夹里的 App,以及你自己的 ~/Library 文件夹,都请保持原样:在那里设错一个权限,就可能让某个 App 打不开,或者无法存储设置。另外,千万不要从你的个人文件夹及其中的“桌面”“文稿”“下载”文件夹上去掉你自己的 读取、写入 或 执行。