首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux:仅对目录设置权限

问Linux:仅对目录设置权限
EN

Stack Overflow用户
提问于 2013-06-13 23:40:42
回答 7查看 33.2K关注 0票数 34

我必须将apache中htdocs目录的权限更改为某个组,并具有特定的读/写/执行权限。

目录需要拥有775个权限,文件需要拥有664个权限。

如果我对htdocs执行递归664,那么所有文件和目录都将更改为664。

我不想手动更改目录。

有没有办法只更改文件或目录?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-06-13 23:43:02

使用find的-type选项将操作限制为文件和目录。使用-o选项为不同的类型指定替代操作,因此您只需运行一次find,而不必为每种类型单独运行一次。

代码语言:javascript
复制
find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +
票数 38
EN

Stack Overflow用户

发布于 2013-06-14 00:05:12

chmod实际上可以自己做到这一点;X符号权限意味着“执行,如果它有意义的话”,这通常指的是目录上,而不是文件上。因此,您可以使用:

代码语言:javascript
复制
chmod -R u=rwX,go=rX /path/to/htdocs

唯一的潜在问题是,如果任何普通文件已经设置了execute集,chmod就会假定它是有意设置的,并保留它。如果这是一个潜在的问题,并且你有chmod的GNU版本(即你在Linux上),你可以像这样让它删除任何分散的执行权限:

代码语言:javascript
复制
chmod -R a-x,u=rwX,go=rX /path/to/htdocs

不幸的是,这个技巧不适用于chmod的bsd (/macOS)版本(我不确定是否适用于其他版本)。这是因为bsd版本基于“原始(未修改)模式”应用X权限,即在a-x修改之前是否有任何执行位(参见the man page)。

票数 67
EN

Stack Overflow用户

发布于 2013-06-13 23:42:49

使用find搜索目录并对其应用chmod:

代码语言:javascript
复制
find -type d | xargs chmod 775

对文件使用类型f:

代码语言:javascript
复制
find -type f | xargs chmod 775
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17091300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档