我正在尝试学习 UNIX 权限以保护原始数据。我的操作系统是 macOS Catalina。
在尝试学习使用时chmod
,我遇到了chmod
无法按照我要求进行更改的情况。以下是ls -lO@
我想更改的文件夹:
[~/Desktop/test--file-permissions]
> ls -lO@
total 0
drwxr-xr-x@ 4 leo staff - 128 Jul 4 16:11 test--work
com.apple.favorite-rank.number#PS 14
com.apple.macl 72
com.apple.metadata:_kMDItemUserTags 42
我想使该文件夹及其所有内容都变为只读:
chmod -R 444 test--work
如果我ls -lO@
再次这样做,它会显示只有“组”和“其他”的权限被设置为只读,但“用户”权限保持不变:
[~/Desktop/test--file-permissions]
> ls -lO@
total 0
drwxr--r--@ 4 leo staff - 128 Jul 4 16:11 test--work
com.apple.favorite-rank.number#PS 14
com.apple.macl 72
com.apple.metadata:_kMDItemUserTags 42
为什么chmod
不改变用户权限?(我使用的是 zsh,而不是 bash,如果这会影响任何事情)
编辑:我试图删除所有写权限(即使对于用户而言)的原因是我的目标是锁定和保护外部硬盘上的原始科学数据,以便无论谁将其插入计算机使用(即无论“用户”),文件都不会被意外删除或移动。
编辑2:我在另一篇文章中发现了这一点,这表明访问控制列表(ACL)可能与此有关,但我不知道它是如何工作的:https://superuser.com/a/671456/945371
编辑 3:通过添加输出ls -lO@
而不是仅仅ls -l