我遇到了以前从未见过的情况,并且在搜索中也找不到。我有一个所有者或任何组所有者都无法查看或编辑的 PHP 文件。奇怪的是,阿帕奇能读取并处理该文件,因此据我所知它没有损坏。此外,还可以使用sudo
(即作为 root)查看和编辑它。
我发现任何<?php
第一行的文件(这对于 PHP 文件来说很常见)都会表现出这种行为。我刚刚在我的主目录中测试了这个:
$ vi henry.txt
我在其中添加了一些文本并保存。没问题。我可以查看该文件:
$ cat henry.txt
Test
我再次编辑该文件 ( vi henry.txt
) 并放入<?php
第一行,然后Test
向下推到第二行。然后我保存并退出。现在:
$ 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
阻止访问。只要简单地放在<?
那里就可以了。
我完全不知道为什么会这样。任何想法将不胜感激。以防万一,这是 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