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

kat*_*ure 2 chmod

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

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

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

这里?

Ste*_*itt 6

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

\n

a=rX设置每个人的读取位以及目录的可执行位;请参阅posix / chmod 中的大写 X 是什么?了解详情。它清除所有其他位。(这可以与 \xe2\x80\x99t结合使用a-x,因为X这里也会为任何具有可执行位集的非目录设置可执行位;a-x首先应用可确保只有目录获得其可执行位集。)

\n

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

\n

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

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n
常规文件可执行文件目录
a-x??-??-??-??-??-??-??-??-??-
a=rXr--r--r--r--r--r--r-xr-xr-x
u+wrw-r--r--rw-r--r--rwxr-xr-x
\n
\n

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

\n

如果您更喜欢用 \xe2\x80\x9cread、write、execute\xe2\x80\x9d 进行推理,那么a=r,u+w,a+X可能更容易理解:

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n
常规文件可执行文件目录
a=rr--r--r--r--r--r--r--r--r--
u+wrw-r--r--rw-r--r--rw-r--r--
a+Xr--r--r--r--r--r--rwxr-xr-x
\n
\n

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

\n

有关更多上下文,请参阅了解 UNIX 权限和文件类型,并针对其他方法将目录的 find-chmod 和常规文件的 find-chmod 结合起来

\n