これまでに見たことのない状況があり、検索しても見つけることができませんでした。所有者またはグループの所有者が表示または編集できないPHPファイルがあります。奇妙なことに、Apacheできるファイルを読み取って処理するので、私の知る限りでは破損していません。また、sudo
(つまり、root として) 表示および編集することもできます。
私が発見したのは、最初の行に があるファイル<?php
(PHP ファイルではよくあることです) はすべてこの動作を示すということです。ホーム ディレクトリでこれをテストしました。
$ vi henry.txt
テキストを入力して保存します。問題ありません。ファイルを表示できます:
$ cat henry.txt
Test
ファイルを再度編集し ( vi henry.txt
)、<?php
最初の行に を入れて、Test
2 行目まで押し下げます。次に、保存して終了します。これで次のようになります。
$ cat henry.txt
cat: henry.txt: Operation not permitted
しかし:
$ sudo cat henry.txt
<?php
Test
ファイルを再度編集し (sudo vi henry.txt
自分として編集できないため)、<?php
行を削除します。保存して終了します。次に:
$ cat henry.txt
Test
実際、<?php
アクセスをブロックするのに full は必要ありません。単に<?
そこに置くだけで済みます。
なぜそうなるのか、まったくわかりません。何かアイデアがあれば、ぜひ教えてください。参考までに、これは Red Hat Enterprise Linux 8 です。SELinux を無効にしてみましたが、違いはありませんでした。
編集: ファイルの所有権 (私) と権限を示すコンソール出力がさらに追加されました。動作はホーム ディレクトリと /tmp で同じです。
[hartley_h@webnix07 ~]$ cd /tmp
[hartley_h@webnix07 tmp]$ echo "Test" > henry.txt
[hartley_h@webnix07 tmp]$ ls -l henry.txt
-rw-r-----. 1 hartley_h domain users 5 Oct 29 15:44 henry.txt
[hartley_h@webnix07 tmp]$ cat henry.txt
Test
[hartley_h@webnix07 tmp]$ echo "<?php" > henry.txt
[hartley_h@webnix07 tmp]$ ls -l henry.txt
-rw-r-----. 1 hartley_h domain users 6 Oct 29 15:45 henry.txt
[hartley_h@webnix07 tmp]$ cat henry.txt
cat: henry.txt: Operation not permitted