root 不能 chmod 吗?

root 不能 chmod 吗?

在我的部门,我们有一个带有 CentOS 和 samba 的小型文件服务器。我拥有 root 访问权限,能够执行一些基本维护。

今天我将一些文件夹设为只读,所以我继续执行了chmod -R -w some-folder/,但对于一些文件我得到了响应:

chmod: ./somefile.pdf: 新权限是 r-xrwxr-x,而不是 r-xr-xr-x

添加后-v我没有得到很多信息:

`./somefile.pdf' 的模式保留为 0575 (r-xrwxr-x)

我尝试了以下操作以确保:

# touch test-file
# chmod -v -R -w .
mode of `./somefile.pdf' retained as 0575 (r-xrwxr-x)
chmod: ./somefile.pdf: new permissions are r-xrwxr-x, not r-xr-xr-x
mode of `./test-file' changed to 0444 (r--r--r--)

我想不出什么好的理由为什么 root 无法执行 chmod 操作?

一些花絮:

  • 文件系统是不是 只读(仅有的一些文件拒绝被 chmodded)。
  • 我运行了 chmod 命令作为根用户但没有效果。
  • 文件所在的分区是ext4。

更新lsattr:这是文件和包含文件夹的输出:

# lsattr somefile.pdf
-------------e- somefile.pdf
# lsattr ..
-------------e- ../myfolder

不存在 setuid ( ls -la):

dr-xr-xr-x  2 userxyz abc   4096 May 30 09:29 .
dr-xr-xr-x 17 userxyz abc   4096 Sep 19  2013 ..
-r-xrwxr-x  1 userxyz abc 275150 Aug  6  2013 somefile.pdf

答案1

据消息人士透露,你有一个朴素预期模式。在放弃更多之后,我认为原因是选择-w,这不是你所期望的。您应该给予g-wugo-w(根据您的需要)。

如果不给出明确的目标(a、o、g、u),根据 umask 值可能会提供一些意想不到的结果。我认为这样额外的信息是因为这种意想不到的变化而完成的。

编辑:来源http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/chmod.c#n301

从谷歌缓存中获取,该代码中的注释不再存在:

/* 如果为真,则诊断出诸如“chmod -r file”之类的天真的误用所带来的意外。 POSIX 允许在此处进行诊断,因为应该使用可移植代码。 “chmod ---r 文件”*/

相关内容