sudo chown失败,不允许操作


8

我在这里找到了类似的问题,但是提供给这些问题的答案不能解决我的问题。

如果我做:

sudo chown <username> main.m

我收到操作不允许错误。

解决先前错误的一般方法是:

sudo chflags nouchg main.m

清除锁定标志。但是,执行完此操作后,我仍然无法整理文件。我也尝试过:

chflags noschg main.m

在单用户模式下没有运气-我收到操作不允许错误。

如果有人有任何想法,我将很感兴趣。


您正在尝试做的基本事情是什么?也许该文件具有锁定是有原因的。
Tamara Wijsman

因此,我可以将其用作测试数据,而无需将代码放入安全的辅助工具中,这需要额外的调试工作-并非没有可能,但是令人讨厌的是,如果我可以更改文件的属性,则不需要安全的辅助工具,那会使事情变得容易一些。考虑到这只是创建的测试数据,因此不再有任何理由锁定它。
ericg 2011年

1
文件位于哪种类型的文件系统上?您不是要chown在NTFS / FAT文件系统上使用吗?
Zoredache

@ericgorr:大部分都在我的头顶上;我不知道什么是安全的辅助工具。但是正如您所说,只是测试数据被创建;您是否已正确关闭代码中的测试文件?
Tamara Wijsman

@Tom帮助程序工具是OS X在维持特权的同时为应用程序提供更高特权的一种方式-因此,例如,如果某个应用程序想要修改安全文件,它会告诉(授权)帮助程序工具为其修改文件。我猜ericgorr想要避免提升他/她的应用程序或某些事情,以避免随之而来的严格调试。
2011年

Answers:


8

我知道,可以通过四种 三种不同的方式来保护Mac文件:

  1. 标准Unix所有权和如R权限/ W / X用户/组/人,你看到ls -l和修复chown(1)chmod(1)
  2. 您可以看到和修复的文件标记,例如uchg和。schgls -lOchflags(1)
  3. 与一起使用的旧Finder元数据“锁定位” GetFileInfo filename。您还可以通过看到Finder元数据的存在,但没有看到其含义ls -l@。您可以使用修复它SetFile(1) 没关系,现在已映射到该uchg标志。
  4. 您可以使用的访问控制列表(ACL),ls -le并使用的ACL相关参数进行了修复chmod(1)

因此,通过将所有这些标志组合到,来查看文件的最新情况ls

ls -lO@e main.m

听起来您已经知道如何处理#1和#2。

如果看到ACL(#4),则可以使用与ACL相关的参数对其进行修复chmod(1)

如果您仍然感到困惑,请使用ls我上面建议的组合命令的输出来更新您的Answer ,以便我们了解发生了什么。


问题似乎与ACL有关。我确实发现sudo不能在这样的锁周围得到一个有趣的发现。此外,chmod -R -a#0 *确实从层次结构中的大多数文件中删除了ACL,但未能从某些文件中删除它们-使用chudo的sudo并没有帮助。
ericg 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.