chmod -R ax,a=rX,u+w 是什么意思?

chmod -R ax,a=rX,u+w 是什么意思?

是什么意思chmod -R a-x,a=rX,u+w

chmod更改文件权限,-R使其递归完成,但是什么:

  • a-x
  • a=rX
  • u+w

这里?

答案1

a-x清除每个人(用户、组、其他)的可执行位。

a=rX设置每个人的读取位以及目录的可执行位;看posix / chmod 中的大写 X 是什么?了解详情。它清除所有其他位。 (这不能与 组合a-x,因为X这里也会为任何设置了可执行位的非目录设置可执行位;首先应用a-x可确保只有目录才能设置其可执行位。)

u+w为用户设置写入位。

结果是所有目录最终都具有 755 权限,而其他所有目录都具有 644 权限。这里有一些例子:

常规文件 可执行文件 目录
a-x ??-??-??- ??-??-??- ??-??-??-
a=rX r--r--r-- r--r--r-- r-xr-xr-x
u+w rw-r--r-- rw-r--r-- rwxr-xr-x

如果我们省略该a-x步骤,则将设置可执行文件的位之一x(否则它就不是可执行文件),并且该a=rX步骤将像处理目录一样处理它。

如果您更喜欢用“读、写、执行”的方式进行推理,那么a=r,u+w,a+X可能更容易理解:

常规文件 可执行文件 目录
a=r r--r--r-- r--r--r-- r--r--r--
u+w rw-r--r-- rw-r--r-- rw-r--r--
a+X r--r--r-- r--r--r-- rwxr-xr-x

这在至少某些版本的 macOS 上也能更好地工作,这些版本X只能通过+操作来识别,而不是=.

了解 UNIX 权限和文件类型了解更多背景信息,以及结合 find-chmod 用于目录和 find-chmod 用于常规文件对于其他方法。

答案2

这些是指定权限的象征性方式,因此您不必记住每个权限的值并能够将它们添加在一起。

,只是一个分隔符,允许您指定多个权限(权限更改),在您的示例中存在三个单独的权限a-x,a=rXu+w

每个权限都以它适用于谁的规范开始,可以是爵士,G团,其他(注意不要认为 o 代表所有者)或全部(或者这些的组合,您可以使用 例如ug为用户和组指定某些内容。然后跟在+,-=,表示您是否要添加权限、删除权限或精确指定权限。最后是实际权限,即最常见的是r头,w仪式和eXecute(意思是搜索目录),但也有 setuid/setgid 的字符(s)、粘性(t), 和X在手册页中描述为“仅当文件是目录或已具有某些用户的执行权限时才执行/搜索”。

在你的例子中a-x意味着删除(-) eX每个人的 ecute 许可(All),并且u+w意味着添加 (+w仪式许可爵士最后(除了我以与它们被赋予的顺序不同的顺序解释它们=它们如何应用)每个人的权限(All)被设置为读取和执行(在目录上,eX文件上的执行之前已被删除)。

请注意,如果按照我解释的顺序对它们进行评估,那么它们u+w将毫无意义,因为每个人都遵循的规则 - 但我以与给出的顺序不同的顺序解释它们,最后得到最复杂的(“X”)。

相关内容