chmod + 更改文件夹下所有文件的所有者

chmod + 更改文件夹下所有文件的所有者

我有一个很奇怪的问题

当我们在 Redhat 机器上执行以下操作(从 bash 脚本更改所有者)时

chmod 600 /etc/yum.repos.d/*.repo

我们得到:

chmod: cannot access ‘/etc/yum.repos.d/pgdg-94-redhat.repo’: No such file or directory
chmod: cannot access ‘/etc/yum.repos.d/pgdg-94-redhat.repo’: No such file or directory
chmod: cannot access ‘/etc/yum.repos.d/pgdg-94-redhat.repo’: No such file or directory
chmod: cannot access ‘/etc/yum.repos.d/pgdg-94-redhat.repo’: No such file or directory
chmod: cannot access ‘/etc/yum.repos.d/pgdg-94-redhat.repo’: No such file or directory

但文件存在于 /etc/yum.repo.d 下

yum.repos.d]# ls -ltr 

-rw--------。 1 root root 482 2016 年 3 月 29 日 pgdg-94-redhat.repo

那怎么可能——这里发生了什么?

答案1

正如 Hauke 提到的,SELinux 很可能是问题所在。您是否尝试将权限更改为不同的用户/模式? ls -lZ 将为您提供具有特定 selinux 上下文的文件。

一个例子是:

rw-r--r--. root root system_u:object_r:etc_t:s0       rhel-source.repo

如果上下文不正确,它就不会起作用。
在这种情况下,# restorecon /etc/yum.repos.d/*将修复上下文。

就您的脚本而言,最后,您可能应该在 /etc/yum.repos.d 目录上执行 Restorecon 命令,以确保存储库文件上的上下文正确。然后操作系统将与它们一起工作。

答案2

末尾的点-rw-------.表明该文件有一个 SELinux 安全上下文。考虑到结果,它可能会阻止访问。

相关内容