Change all files and folders permissions of a directory to 644/755
如何使用
一种方法是使用查找:
对于目录1 | find /desired_location -type d -print0 | xargs -0 chmod 0755 |
对于文件
1 | find /desired_location -type f -print0 | xargs -0 chmod 0644 |
最简单的方法是:
1 | chmod -R u+rwX,go+rX,go-w /path/to/dir |
这基本上意味着:
给
u ser:r ead,w rite和eX ecute权限,g 组和o 其他用户:r ead和eX 执行权限,而不是-w 仪式权限。
请注意,
+X - make a directory or file searchable/executable by everyone if it is already searchable/executable by anyone.
请查看
另请参见:如何对除文件以外的所有目录进行chmod(递归)?在SU
我能想到的最短的是:
1 | chmod -R a=r,u+w,a+X /foo |
它在GNU/Linux上工作,我一般相信POSIX(从我的阅读:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html)。
它的作用是:
重要的是,步骤1权限清除所有执行位,因此步骤3只为目录(从不添加文件)添加回执行位。此外,这三个步骤都发生在目录递归到之前(因此这不等同于
1 2 3 | chmod -R a=r /foo chmod -R u+w /foo chmod -R a+X /foo |
因为a=r从目录中删除了x,所以chmod不能递归到目录中。)
这对我很有用:
1 2 | find /A -type d -exec chmod 0755 {} \; find /A -type f -exec chmod 0644 {} \; |
我最容易记住的是两个操作:
1 2 | chmod -R 644 dirName chmod -R +X dirName |
+X只影响目录。
一次通过两个步骤:
1 | find -type f ... -o -type d ... |
如中所示,找到F或D类型,然后第一个…对于文件和第二个…为了讽刺。明确地:
1 | find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} + |
如果你想让它安静地工作,就不要使用
论https://help.directadmin.com/item.php?ID=589他们写道:
如果您需要一种快速的方法将您的公共HTML数据重置为755(目录)和644(文件),那么您可以使用如下方法:
1 2 3 | cd /home/user/domains/domain.com/public_html find . -type d -exec chmod 0755 {} \; find . -type f -exec chmod 0644 {} \; |
我测试过…它起作用了!
这也可以工作:
1 2 3 | chmod -R 755 * // All files and folders to 755. chmod -R 644 *.* // All files will be 644. |