如何在Mac OS X中递归更改文件夹的共享/权限


53

是否有Mac OS X工具或脚本允许我递归更改文件夹中文件和子文件夹的共享/权限属性?例如,让所有人或特定用户能够读写,只读或只写。

Answers:


73

尝试使用chmod命令。例如,如果您有一个目录名mydir,则以下命令将递归启用该mydir的读/写。

$ chmod -R +rw mydir

欲获得更多信息:

$ man chmod

18
好的答案,不好的例子。当添加对文件夹的读取和/或写入访问权限时,您还需要添加执行(“ x”,又名搜索)访问权限,否则r / w有点用处。另一方面,您通常不希望在文件中添加执行。进行递归更改时,您将同时使用文件和文件夹。答案是使用chmod的“智能执行”(大写X)功能:chmod -R +rwX mydir仅在有意义时才添加执行。
戈登·戴维森

戈登:很好的观察。但是,目录通常会打开x,除非用户执行一些时髦的操作将其关闭。
海武

1
取决于初始权限。例如,如果您查看默认配置的Mac主文件夹,您会看到所有者对大多数文件夹(桌面,文档,库等)具有全部(rwx)访问权限,但对组和其他文件具有完全访问权限没有访问权限(没有读取,写入或执行)。如果要将群组或其他群组的读写操作添加到这些文件夹之一,则还需要添加执行。
戈登·戴维森

1
对我不起作用,仅适用于主文件夹,不适用于子文件夹。
delphirules

29

选择您要使用的根文件夹,然后打开检查器(CMD-i或右键单击并单击“显示信息”)。您可以在底部面板上管理权限。

在此列表中添加和删除权限。若要将相同的权限递归地应用于每个子文件夹,请单击齿轮,然后选择“应用于封闭的项目...”。

注意:我注意到当窗口右下角的小锁图标被锁定时,“应用于封闭的项目...”显示为灰色。在这种情况下,只需单击您的凭据即可单击该锁以将其解锁,然后使用“应用于封闭的物品...”重试。


虽然通常有用,但无法完成要求的功能。它取代子目录中的权限,而不是例如将用户添加到所有子目录中,而不管以前的权限是什么。
丹尼尔·贝克

@DanielBeck你错了,它适用权限的所有元素,搭配chmod和chown这是正确的“MAC”的方式来做到这一点
罗布

我只是尝试了这个答案(在测试文件夹上),但无法正常工作:由于文件夹通常是“可执行的”,因此在所有包含的文件中也都设置了该位,这是错误的。我只是想更改用户和组。

12

您要使用chmodchown命令。

如果我没记错的话,可以这样更改权限:

chmod -R +a "joshhunt allow read" /some/file/or/folder/
chmod -R +a "Guest deny read" /some/other/folder/
chmod -R +a "Guest deny write" /some/other/folder/

有关这些命令的更多详细信息,请在终端中查找其各自的手册页:

man chmod
man chown

1
尝试为特定用户指定许可的最佳方法
megalucio '17
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.