首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chmod是否修改文件的权限..。参数按指定的顺序?

chmod是否修改文件的权限..。参数按指定的顺序?
EN

Stack Overflow用户
提问于 2017-05-10 11:21:33
回答 2查看 159关注 0票数 2

给定具有多个文件参数的chmod调用,

代码语言:javascript
复制
$ chmod 0xxx FILE-1 FILE-2 FILE-3 ...

有什么可预测的顺序来处理它们吗?当FILE-kFILE-j相关时,这可能很重要,例如,当一个是另一个的子目录时。假设,FILE-1是某个目录d1FILE-2子目录d1/d2,即第二个参数命名了第一个参数的子目录:

代码语言:javascript
复制
$ chmod 0000 d1 d1/d2
chmod: cannot access `d1/d2': Permission denied

好的,这正是我所期望的,即从左到右的读取反映了处理FILE...参数的顺序,首先清除了d1的权限,因此chmod没有获得对d1/d2的访问权限。因此,下面的调用也按预期工作:

代码语言:javascript
复制
$ chmod 0000 d1/d2 d1

这将清除任意目录的权限。但是,这种秩序依赖性是否得到保证,更普遍地说,POSIX是否对这一问题有所说明?关于Unix系统的可预测性,选项-R是否以某种方式影响推理?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-10 15:01:57

虽然没有指定,但所有的实现都像您所经历的那样自然运行,但是没有保证,注意POSIX (IEEE 1003.1-2008,2016Edition)在chmod命令手册-应用程序使用中说。

当执行递归(-R )选项时,chmod实用程序的某些实现会更改目录中文件之前的目录模式;另一些实现会在目录中的文件之后更改目录模式。如果应用程序试图删除文件层次结构的读权限或搜索权限,如果先更改目录,则删除尝试失败;另一方面,如果目录最后更改,尝试重新启用对受限制层次结构的权限将失败。用户不应试图使自己无法访问层次结构。

因此,参数上的任何顺序都可以应用,您需要使用单独的命令来确保顺序。

票数 0
EN

Stack Overflow用户

发布于 2017-05-10 15:53:59

它似乎在任何地方都没有具体说明。

但是,CHMOD手册页的应用程序使用部分确实指定了命令的递归行为。

经过几次实验,我在运行Ubuntu14.04.5LTS的x86_64 GNU/Linux上获得了与您相同的结果。

它似乎计算出了从左到右的权限,并在不能更改权限时停止。

  • 如果您试图撤消权限,则最好让父目录位于最后。(即文件层次结构中的叶到根)
  • 如果您正在尝试授予权限,那么最好先拥有父目录。(即文件层次结构中的根到叶)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43890999

复制
相关文章

相似问题

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