【译】如何使用文件标志修改 macOS 中的文件行为

原文地址:https://alphahinex.github.io/2024/09/01/macos-file-flags/


description: "macOS 中可以使用文件标志(flags)来限制文件被修改的方式。可以使用 chflags 来更改标志,ls 来查看标志"
date: 2024.09.01 10:34
categories:
- Mac
tags: [Mac, Linux]
keywords: flags, macOS, file, chflags, ls, hidden, nodump, sappnd, schg, uappnd, uchg, hidden, opaque, immutable, append, chattr, lsattr, arch


在 macOS 中,可以使用文件标志(flags)来限制文件被修改的方式。它们与文件权限不同,并且与 chownchmod 等命令并行运行。您将使用 chflags 来更改标志,以及使用 ls 来查看标志。Unix 运行一个类似的系统,但是选项更多,称为“属性”,而不是标志。

在 macOS 上查看已设置的标志

在终端中,您可以使用 ls 命令来查看任何已设置的标志。

$ ls -lO 
drwx------@ 88  alexander staff hidden 2992 Jan 25 14:01 Library

如果文件或文件夹没有设置标志,则会显示一个短横线。

$ ls -lO ~/Library/Caches
drwx------+ 234 alexander staff   -    7956 Jan 25 13:03 Caches

已设置的标志可以使用它们的相反形式来删除,就如下面描述的那样。

在 macOS 上设置和清除标志

文件标志通常以问题形式出现。因为它们会设置额外的权限,且很容易被忽略。您是否发现自己有一个无法删除的文件,无论您的用户权限有多高?您可能需要清除一个或两个标志。

可以在 macOS 上设置的标志如下所示。这是可用选项的完整列表,以及它们的功能说明。大多数标志只能由文件的所有者或超级用户设置;sappndschg 只能由超级用户设置,因为它们是系统级标志。只有隐藏标志可以在不升级权限的情况下设置。

在 macOS 上设置标志

在 macOS 上设置标志时,请使用以下命令。递归标志 -R 可用于目录级操作:

$ sudo chflags -R [标志] /usr/bin/local
$ sudo chflags [标志] /usr/bin/local/mnt.sh
$ chflags -R hidden ~/Desktop

将设置适当的标志。例如,以下命令将设置 nodump 标志:

sudo chflags nodump /usr/bin/local/tty.sh

每个 chflags 命令只能设置或删除一个标志。

  • opaque 将文件夹设置为在通过联合挂载查看时呈现为不透明的方式,这是一种同时查看多个目录的老式方法。
  • nodump 防止在使用 dump 命令备份系统时转储文件或文件夹。
  • sappnd, sappend 设置系统追加标志,允许向文件添加内容,但不允许修改或删除。要删除此标志,需要进入单用户模式。
  • schg, schange, simmutable 设置系统不可变标志,阻止任何权限级别的用户对文件进行更改。要删除此标志,需要进入单用户模式。
  • uappnd, uappend 设置用户追加标志。文件所有者可以设置此标志,并且可以在不升级权限的情况下取消设置。由于它锁定文件,在较低的安全级别下使用 sappndschg,它被更频繁地使用。
  • uchg, uchange, uimmutable 设置用户不可变标志,它与系统不可变标志的关系,跟 uappnd 标志与 sappnd 的关系相同。
  • hidden 设置隐藏标志。这将在 Finder GUI 和 ls 命令中隐藏该项。

译注:除上述选项外,还有 arch, archived 用于设置存档标志(仅超级用户)。完整选项列表可见 man chflags

在 macOS 上清除标志

要清除给定的标志,请设置其相反标志。在大多数情况下,这意味着在命令前加上“no”。对于 nodump,使用 dump 标志来清除,如下所示:

sudo chflags dump /usr/bin/local/oty.sh

更多标准选项可以使用“no”前缀进行反转,如下所示:

sudo chflags nosappnd /usr/bin/local/oty.sh

与 chmod 一样,递归标志也可用:

chflags -R nohidden ~/Desktop

清除标志后,您将可以按预期更改文件的所有权和权限。

在 Unix 上使用属性

Unix 在后台运行类似的系统,但是使用不同的命令处理。在最流行的 Linux 平台上,您将使用 chattrlsattr 来更改和查看“属性”,这也是文件标志在大多数其他 Unix 系统中的体现。

可以使用 lsattr 查看属性:

lsattr /path/to/file.txt

更改属性依赖于一组首字母缩写,并在 chattr man 页面 中列出:

“The letters ‘acdeijstuADST’ select the new attributes for the files: append only (a), compressed (c), no dump (d), extent format (e), immutable (i), data journalling (j), secure deletion (s), no tail-merging (t), undeletable (u), no atime updates (A), synchronous directory updates (D), synchronous updates (S), and top of directory hierarchy (T).”

“字母 ‘acdeijstuADST’ 选择文件的新属性:追加(a),压缩(c),不转储(d),扩展格式(e),不可变(i),数据日志(j),安全删除(s),不合并尾部(t),不可删除(u),不更新访问时间(A),同步目录更新(D),同步更新(S)和目录层次结构顶部(T)。”

命令如下所示:

chattr +s /file/name.txt

这将为指定路径设置安全删除属性。

总结

在限制谁可以更改文件时,标志非常有用。通过锁定文件,您可以在文件系统级别防止篡改或意外编辑。除非升级为 root 或文件所有者,否则无法更改这些权限,因此它们具有适度的安全性。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容