为什么我的 chmod 没有按预期工作?

为什么我的 chmod 没有按预期工作?

我想将文件夹权限设置为 555,将文件权限设置为 554,所以我尝试了以下操作chmod

sudo chmod -R -v ug=rx,o=r,a+X mydir/

我认为这会将usergroup权限设置为r-xothers权限r--,但由于只有a+X文件夹会收到r-xothers权限,但文件将保留r--

但这不起作用,它将所有文件和文件夹设置为 555,即使我之前将所有文件夹和文件设置为 444 以确保x任何地方都没有任何权限。

为什么这个chmod命令不能按我的预期工作?

答案1

好的,我找到了答案在维基百科上

当它解释该X选项时:

...它将执行权限应用于目录,无论其当前权限如何,并将执行权限应用于已经具有的文件至少已设置一个执行权限位(所有者、团体或其他)...

我真的不明白为什么有人会想要x对任何用户(所有者、组或其他)应用权限,如果另一个用户已经拥有此权限......或者换句话说,如果有的话,请授予others执行权限,但有人看到owner这是最好的默认行为,这就是它的工作原理,想想吧。

我将代码更改为:

chmod -R ugo=r,a+X,ug+x

由于顺序很重要,现在它会按预期运行。

相关内容