我们的一些 RHEL Server 7.2 VM 上出现了一个奇怪的问题:
执行sudo chmod -R +rx
不会改变任何子目录的读取/目录标志。但是,执行sudo chmod -R a+rx
工作正常。例如对于Java 代理文件夹如下:
ls -la appdynamics/
drwxr-xr-x 4 appdynamics appdynamics 43 May 6 03:54 .
drwxr-xr-x. 8 root root 4096 May 5 16:56 ..
drwx------ 3 root root 30 May 5 16:56 java-agent
drwxr-xr-x 3 root root 17 May 6 03:54 machine-agent
sudo chmod -R +rx appdynamics
ls -la appdynamics
drwxr-xr-x 4 appdynamics appdynamics 43 May 6 03:54 .
drwxr-xr-x. 8 root root 4096 May 5 16:56 ..
drwx------ 3 root root 30 May 5 16:56 java-agent
drwxr-xr-x 3 root root 17 May 6 03:54 machine-agent
sudo chmod -R a+rx appdynamics
ls -la appdynamics
drwxr-xr-x 4 appdynamics appdynamics 43 May 6 03:54 .
drwxr-xr-x. 8 root root 4096 May 5 16:56 ..
drwxr-xr-x 3 root root 30 May 5 16:56 java-agent
drwxr-xr-x 3 root root 17 May 6 03:54 machine-agent
据我了解,它chmod +rx
默认为a+rx
- 但不仅仅在我们的一些盒子上,而且只在 RHEL 7.2 上(6.8 似乎没问题)。
我以前从未见过这种情况,谷歌搜索似乎也没有给出任何提示。这是一个问题,因为它破坏了现有的厨师食谱,但只对少数机器有效。
答案1
chmod +rx
和chmod a+rx
不是一回事。前者遵守umask
设置(即不会设置 中的位umask
),而后者则不然。似乎您的umask
设置为0077
,或类似的东西。