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ルートルート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セキュリティコンテキストがあることを示します。結果によってはアクセスがブロックされることがあります。

関連情報