如何更改文件夹及其所有子文件夹和文件的权限?

这仅适用于/opt/lampp/htdocs文件夹,而不适用于其内容:

chmod 775 /opt/lampp/htdocs

如何为/opt/lampp/htdocs文件夹的所有当前内容设置chmod 755,以及将来自动为其下创建的新文件夹/文件设置chmod?


当前回答

正确的递归命令是:

sudo chmod -R 755 /opt/lampp/htdocs

-R: 更改每个子文件夹,包括当前文件夹

其他回答

chmod 755-R/opt/lampp/htdocs将递归设置权限。无法仅在设置权限后创建的目录中自动设置文件的权限,但可以通过设置umask 022来更改系统范围内的默认文件权限。

其他答案是正确的,因为chmod-R 755将为树中的所有文件和子文件夹设置这些权限。但你到底为什么要这样做?这可能对目录有意义,但为什么要在所有文件上设置执行位?

我怀疑您真正想做的是将目录设置为755,或者将文件单独保存,或者将它们设置为644。为此,可以使用find命令。例如:

要将所有目录更改为755(drwxr-xr-x):

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

要将所有文件更改为644(-rw-r-r-),请执行以下操作:

find /opt/lampp/htdocs -type f -exec chmod 644 {} \;

一些splainin:(谢谢@tobez)

chmod 755{}指定find将为每个目录执行的命令chmod 644{}指定find将为每个文件执行的命令{}被路径替换; 分号告诉find它应该执行的命令到此结束\; 分号被转义,否则将由shell而不是find解释

这很简单。

在终端中,转到文件管理器。示例:sudo nemo。转到/opt/,然后单击财产→ 准许然后是其他。最后,更改为创建和删除,文件访问为读取和写入,然后单击按钮应用。。。而且它是有效的。

Use:

sudo chmod -R a=-x,u=rwX,g=,o= folder

所有者rw,其他人没有访问权限,以及带有rwx的目录。这将清除文件上的现有“x”。

chmod 744中解释了符号chmod计算。

查找文件并对其应用chmod有两种答案。

第一个方法是找到文件,并根据找到的文件应用chmod(正如@WombleGoneBad所建议的那样)。

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

第二种解决方案是使用find命令生成所有文件的列表,并将该列表提供给chmod命令(如@lamgesh所建议的)。

chmod 755 $(find /path/to/base/dir -type d)

只要find命令返回的文件数量很少,这两个版本都能很好地工作。第二种解决方案看起来很好看,比第一种更易读。如果有大量文件,第二个解决方案将返回错误:参数列表太长。

所以我的建议是

如果要同时更改所有文件和目录的权限,请使用chmod-R 755/opt/lampp/htdocs。使用find/opt/lamp/htdocs-type d-exec chmod 755{}\;如果您使用的文件数量非常大。-type x选项仅搜索特定类型的文件,其中d用于查找目录,f用于文件,l用于链接。否则使用chmod 755$(find/path/to/base/dir-type d)在任何情况下都最好使用第一个