在 Mac OS X 中,运行“ls -al”会给我这样的结果。
drwxrwxrwx+ 4 smcho 工作人员 136 5 月 5 日 09:18 公开 drwxr-xr-x+ 6 smcho 员工 204 2010 年 2 月 1 日 drwxrwxrwx 9 smcho 员工 306 2010 年 2 月 2 日备份 drwxr-xr-x@ 36 smcho 工作人员 1224 九月 4 22:51 bin
- 第一列末尾的+或@是什么意思?
- 这是 Mac 独有的,还是 UNIX 中常见的?
添加
在 Michael Mrozek 回答后,我运行“ls -ale”以获得以下内容。
drwx------+ 66 smcho 工作人员 2244 八月 30 13:40 图书馆 0: group:com.apple.sharepoint.group.3 允许搜索 1:群组:所有人都拒绝删除 drwxr-xr-x 3 smcho 工作人员 102 九月 4 15:01 邮件 drwx------+ 13 smcho 工作人员 442 八月 28 17:55 电影 0:组:所有人都拒绝删除 drwx------+ 6 smcho 工作人员 204 年 7 月 9 日 09:37 音乐 0:组:所有人都拒绝删除 drwx------+ 11 smcho 工作人员 374 八月 28 16:55 图片 0:组:所有人都拒绝删除 drwxr-xr-x 3 smcho 工作人员 102 三月 18 15:43 项目 drwxrwxrwx+ 4 smcho 工作人员 136 5 月 5 日 09:18 公开 0:组:所有人都拒绝删除 drwxr-xr-x+ 6 smcho 员工 204 2010 年 2 月 1 日 0:组:所有人都拒绝删除
那些附加的消息是什么意思?为什么我有一些文件需要它们?我不记得为他们做过什么特别的事情。
答案1
该@
后缀是 Mac OS 所特有的,并由这个问题,所以我从那里复制了我的答案的这一部分;这意味着该文件有扩展属性。您可以使用xattr
命令行实用程序来查看和修改它们:
xattr --list filename
xattr --set propname propvalue filename
xattr --delete propname filename
后缀+
表示该文件具有访问控制列表,并且在任何支持 ACL 的 *nix 中都很常见。给出ls
该-e
标志将使其在文件后显示关联的 ACL,然后chmod
可用于修改。其中大部分来自chmod
手册页:
您可以使用 添加 ACL chmod +a "type:name flag permission,..."
,并使用 删除它chmod -a
。的论证chmod
相当复杂:
- 类型是
user
或group
,以澄清是否name
指的是用户名或组名。如果name
明确,则可以省略类型 - 姓名是 ACL 应用的用户名或组
- 旗帜是
allow
此 ACL 条目是否正在授予权限,或者deny
是否正在拒绝权限 - 允许是实际被修改的权限;您可以列出任意数量的内容,以逗号分隔
- 删除-- 允许删除文件/目录
- 读取属性-- 读取基本属性
- 写属性-- 写入基本属性
- 读取数据-- 读取扩展属性(使用
xattr
上面的 , ) - 写入外部数据-- 写入扩展属性
- 阅读安全性-- 读取ACL信息
- 写安全性-- 写入ACL信息
- 乔恩-- 改变所有者
- 特定于目录的权限
- 列表-- 显示目录中的文件/文件夹
- 搜索-- 按名称查找目录中的文件/文件夹
- 添加文件-- 在目录下新建文件
- 添加子目录-- 在目录下新建一个目录
- 删除子对象-- 删除目录中的文件/目录
- 继承控制
- 文件继承-- 目录上的 ACL 由文件继承
- 目录继承-- 目录上的 ACL 被子目录继承
- 限制继承-- 阻止子目录继承该目录继承的 ACL
- 仅继承-- 被所有新创建的项目继承但被忽略
- 文件特定权限
- 读-- 打开文件进行读取
- 写-- 打开文件进行写入
- 附加-- 打开要追加的文件
- 执行-- 运行文件
在您的特定示例中,大多数 ACL 条目都是group:everyone deny delete
.也就是说,该everyone
组中的所有用户(自然是每个人)都被拒绝删除该文件夹的权限。我相信,虽然我找不到任何相关文档,但这些是默认 ACL,可以阻止您删除重要的根文件夹——如果情况并非如此,有人会更正这一点。唯一的其他条目是,它允许目录服务按文件夹group:com.apple.sharepoint.group.3 allow search
中的名称搜索文件/Library