Tengo una situación que nunca antes había visto y no he podido encontrar en mi búsqueda. Tengo un archivo PHP que ni el propietario ni ningún propietario del grupo pueden ver ni editar. Curiosamente, apachepoderlea y procese el archivo, por lo que, hasta donde yo sé, no está dañado. Además, se puede ver y editar sudo
(es decir, como raíz).
Lo que descubrí es que cualquier archivo que tenga <?php
la primera línea (lo cual es bastante común para los archivos PHP) muestra este comportamiento. Acabo de probar esto en mi directorio de inicio:
$ vi henry.txt
Le pongo algo de texto y lo guardo. Ningún problema. Puedo ver el archivo:
$ cat henry.txt
Test
Edito el archivo nuevamente ( vi henry.txt
) y lo coloco <?php
en la primera línea, empujando Test
hacia la segunda línea. Luego guardo y salgo. Ahora:
$ cat henry.txt
cat: henry.txt: Operation not permitted
pero:
$ sudo cat henry.txt
<?php
Test
Edito el archivo nuevamente ( sudo vi henry.txt
porque no puedo editarlo como yo mismo) y elimino la <?php
línea. Guardar y Salir. Ahora:
$ cat henry.txt
Test
De hecho, ni siquiera necesito el completo <?php
para bloquear el acceso. Simplemente ponerlo <?
allí será suficiente.
No sé por qué podría ser esto. Cualquier idea sería muy apreciada. En caso de que sea importante, este es Red Hat Enterprise Linux 8. Intenté deshabilitar SELinux pero no hubo diferencia.
EDITAR: Más salida de consola, que muestra la propiedad del archivo (yo) y los permisos. El comportamiento es idéntico en mi directorio personal y en /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