文件权限是如何计算的?

Ste*_*fan 7 permissions chmod

使用chmodI 可以设置文件的权限,但是如果父 ( ..) 目录具有冲突的权限,会发生什么?

如果我创建一个新文件,使用touch或类似的东西,初始权限是如何计算的?权限是否继承自它..

为什么当我删除executable权限标志时我不能在目录中做任何事情?

$ mkdir temp;
$ chmod -x temp;
$ touch temp/a;
$ ls temp;
touch: cannot touch `temp/a': Permission denied
Run Code Online (Sandbox Code Playgroud)

Ric*_*rri 15

  1. 严格来说,UNIX 中没有“权限冲突”这样的东西:对文件系统条目(目录、文件等)的访问权限决定了您在该对象上可以做什么或不可以做什么。其他文件系统条目的权限不会进入图片,除了文件路径中所有祖先目录上的“x”位(最多/)——参见 3。

  2. 新创建文件的默认权限由创建程序允许的权限(或系统调用的mode参数)和当前进程决定。具体而言,在“的umask”被设置的任何位(1)复位(0)在新创建的文件权限:在类C的符号:。阅读(查找)并了解详细信息。opencreatumaskfile_permissions = open_mode & ! umaskman 2 creatO_CREATman umask

  3. 目录上的“x”(可执行)位控制您是否可以遍历该目录:遍历目录意味着能够cd进入它并访问其中包含的文件。请注意,列出目录内容的能力由“r”位控制。

进一步阅读: