为什么在执行一个 sudo 命令之前我无法打开 Mac 文件(不允许操作)?

问题描述 投票:0回答:1

这是一个谜。首先,即使我有读取权限,我也无法在 Mac 上打开特定文件:

$ cd Downloads
$ ls -l "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
-rw-r--r--@ 1 smith staff  16807637 May  2 15:19 WhatsApp Video 2024-05-02 at 15.06.16.mp4

$ file "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
WhatsApp Video 2024-05-02 at 15.06.16.mp4: cannot open: Operation not permitted

我可以用 sudo...

来阅读它
$ sudo file "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
Password:
WhatsApp Video 2024-05-02 at 15.06.16.mp4: ISO Media, MP4 v2 [ISO 14496-14]

...但奇怪的部分来了。执行上一个命令后,该文件仍然可以被我读取 without sudo:

$ file "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
WhatsApp Video 2024-05-02 at 15.06.16.mp4: ISO Media, MP4 v2 [ISO 14496-14]

此后一段时间内,即使我注销并重新登录,该文件仍可供我读取。然而,在接下来的 24 小时内的某个时候,它会再次变得无法读取。这是怎么回事?

我注意到这个问题,因为我的系统备份(使用rsync)抱怨“操作不允许。”

如果有帮助,这里是 xattr 的输出,但属性(一旦可以显示)看起来与同一文件夹中的许多其他文件相同,完全可读。

$ xattr -l "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
xattr: [Errno 1] Operation not permitted: 'WhatsApp Video 2024-05-02 at 15.06.16.mp4'
$ sudo xattr -l "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
com.apple.macl: 
com.apple.provenance: 
com.apple.quarantine: 0087;6633e72d;WhatsApp;
$ xattr -l "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
com.apple.macl: 
com.apple.provenance: 
com.apple.quarantine: 0087;6633e72d;WhatsApp;
macos file permissions sudo
1个回答
0
投票

尝试运行以下两个命令,看看它们是否给出任何线索:

sudo fs_usage | grep "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
# Leave this running for 24 hours
log show | grep "WhatsApp Video 2024-05-02 at 15.06.16.mp4"
© www.soinside.com 2019 - 2024. All rights reserved.