Linux SSHPHP creado archivo | SSH No se puede eliminar (permiso denegado)
creo un archivo en php usando
if (!is_dir(DIR_FILE))
mkdir(DIR_FILE, 0777);
$filename = DIR_FILE . $id . '.txt';
$handle_cf = fopen($filename, 'a');
fwrite($handle_cf, $data . "\n");
fclose($handle_cf);
chmod($filename, 0777);
chown($filename, "usr111"); // usr111 = username
chgrp($filename, "usr111"); // usr111 = group that is also attached to apache
El archivo recibe los siguientes permisos.
-rwxrwxrwx 1 apache apache 1447 Apr 4 12:48 D.txt
-rwxrwxrwx 1 apache apache 1447 Apr 4 12:48 E.txt
Sin embargo, cuando intento eliminar el archivo, bajo la cuenta de usuario normal (usr111). Obtengo el siguiente error
[[email protected] session]$ rm D.txt
rm: cannot remove `D.txt': Permission denied
NOTA: Puedo eliminar el archivo en la raíz.
¡FIX FOUND! aunque estaba usando la configuración de modo en mkdir para php. Por alguna razón, esto no estaba funcionando. Agregué lo siguiente.
if (!is_dir($dir)) {
mkdir($dir, 0777);
chmod($dir, 0777);
}
¿cuáles son los permisos en el directorio de este archivo está en? –
Si está iniciando sesión con una cuenta de usuario normal, PHP o más bien Apache es el propietario del archivo y no podrá eliminarlo a menos que tenga permisos para que todos puedan hacerlo. De lo contrario, si ha iniciado sesión con la raíz, no debería tener problemas. – Francisc
+ MarcB drwxr-xr-x 2 apache apache 4096 4 de abril 12:48 sesión – RichardW11