jos*_*erk 84 file-permissions macos
我正在尝试在我的 Mac (10.6.7) 上执行以下操作:
sudo chown myusername:wheel ./entries
Run Code Online (Sandbox Code Playgroud)
但 Unix/Mac 返回“不允许操作”。当我找到ls -lash罪魁祸首文件时,它看起来如下:
8 -rwxrwxrwx 1 myusername staff 394B Apr 26 23:26 entries
Run Code Online (Sandbox Code Playgroud)
我试过sudo和sudo su; 没有任何效果。有什么想法吗?
我正在尝试chmod从我的旧 Ubuntu 盒子中复制的文件。大多数文件都成功地chmod递归 'ed; 只是这个卡住了,我不明白为什么。
Old*_*Pro 99
是的,Mac 在文件方面对 Unix 有很多改进。忽略不再使用的整个资源分叉的东西,有:
ugo rwx等。普通的 Unix 工具适用。ls -le和更改chmod [ -a | +a | =a ]。ls -lO(大写哦,不是零)查看并且可以用chflags.ls -l@(仅属性键)查看和可查看和更改xattr。(xattr -h如果man xattr没有给你任何东西,请使用帮助。)sudo作为运行root。受 SIP 保护的文件将被列为ls -lO具有restricted标志和/或被列为ls -l@具有com.apple.rootless属性。由于 Unix 权限、ACL、文件标志或 SIP,您可能会被拒绝对文件进行操作。要完全解锁文件:
sudo chmod -N file # Remove ACLs from file
sudo chmod ugo+rw file # Give everyone read-write permission to file
sudo chflags nouchg file # Clear the user immutable flag from file
sudo chflags norestricted file # Remove the SIP protection from file
sudo xattr -d com.apple.rootless file # Remove SIP protection from file
Run Code Online (Sandbox Code Playgroud)
如果系统完整性保护(SIP)已启用,sudo chflags norestricted并且sudo xattr -d com.apple.rootless也将返回一个“不允许操作”错误。要清除标志和/或属性,您需要启动到macOS Recovery并从终端运行命令(您可能必须首先使用磁盘工具来解锁和挂载启动驱动器,然后记住您的文件将位于/Volumes/Macintosh HD或无论您的启动驱动器已命名)或完全禁用 SIP,然后重新启动,然后命令应该可以工作。但是请注意,未来的操作系统更新可能会将restricted标志和com.apple.rootless属性恢复到您从中删除它的任何文件。
不建议禁用 SIP,因为它会删除大量针对恶意软件和意外损坏的保护,此外,如果您可以简单地针对每个文件删除保护,则没有必要。如果您确实禁用了 SIP,请在完成更改后重新启用它。
请注意,如果ls -lO显示schg标志已设置,您必须进入单用户模式才能取消设置。我不打算在这里讨论这个问题,因为关于为什么文件设置了那个标志以及为什么你试图弄乱它以及后果会是什么还有更大的问题。
小智 20
我有同样的问题。事实证明,有问题的文件被操作系统标记为“已锁定”。我找到了这个解决方案,它在几秒钟内解决了问题:
http://explanatorygap.net/2005/07/10/unlocking-files-recursively-from-the-command-line/
rmTiger 中的命令似乎发生了变化,如果您使用rm -Rf提升的权限,它将自动解锁文件。
在 Tiger 之前的 OS X 中: find /Volumes/Transit -flags +uchg -print0 | xargs -0 chflags nouchg
在 Tiger 之后的 OS X 中: sudo rm -Rf foldername/
此外,即使在 OS X 10.4 之后,也可能存在诸如uchg和 之类的文件元数据标志uappnd,以防止对文件权限或所有权进行任何修改。 chflags可以删除标志。一些文件属性/元数据以及它们如何被不同的复制工具处理在这里。
小智 12
我在 Crashplan.app 上遇到了同样的问题。
这里列出的所有解决方案都无济于事,但这个解决方案做到了:http : //forums.macrumors.com/showthread.php?t=1546163
您必须更改系统和用户不可变标志:
这样做以查看您的文件/文件夹中哪些标志处于活动状态:
ls -lhdO MyFile
Run Code Online (Sandbox Code Playgroud)
响应可能如下所示:
drwxrwxr-x 3 root admin schg,uchg 102B Apr 8 2013 MyFile
Run Code Online (Sandbox Code Playgroud)
schg , uchg是那些不可变的标志。一种用于系统,一种用于用户。要删除它们,请执行以下操作:
chflags noschg CrashPlan.app # this removes system immutable flag
chflags nouchg CrashPlan.app # this removes the user immutable flags
Run Code Online (Sandbox Code Playgroud)
然后,至少对我来说,文件已解锁,您可以删除它!
Nat*_*ate 12
在 OS X 10.11 (El Capitan) 中,这也可能是由新的Rootless功能引起的。请参阅此答案以获取解释。
简而言之,对于某些重要的目录,没有办法修改它们——无论是使用sudo,chown还是chmod. 这会影响/usr目录(尽管您可以修改/usr/local)。
要修改受 Rootless 保护的目录,您需要禁用 Rootless。当然,在进行修改后重新启用它,因为它是一项重要的安全增强功能。
经过很多努力,这是我必须做的才能解决问题:
~/Desktopsudo chown myusername:staff ./entriessudo rm ./entriessudo mv ~/Desktop/entries ./entries小智 5
我有同样的问题,关于我的主文件夹。最后,我只是使用了这样的 finder:
去 -> 计算机 -> 你的磁盘 -> 用户 -> 你的用户名 -> 右键单击 -> 获取信息
我发现它被锁定了,可能是我过去做过而忘记了。取消选中锁定复选框,问题已修复。
我可以建议使用 finder 中的“获取信息”来解决此类问题。
(OS X 10.8.3)
| 归档时间: |
|
| 查看次数: |
170355 次 |
| 最近记录: |