php planteo borrar chmod 775 dir
-
01-10-2019 - |
Pregunta
Aceptar ayuda a entender esto.
Tengo 2 usuarios en el sistema Linux que son parte del grupo de "usuarios de Internet".
uno es www-datos utilizados por el servidor web y php-cgi uno es mi ftp-usuario
cuando subo archivos a través de FTP que se establecen en 775 para directorios y 664 para los archivos, cuando ejecuto un script en el servidor (por lo mismo grupo como el usuario ftp) para eliminar ese directorio y archivos dentro: unlink para archivos de Works bien, pero el permiso comando rmdir no funciona volviendo negó !? Y sí, el directorio se borra después de vaciarse.
¿Por qué es que 775 significa que el usuario del grupo puede eliminarla igual que 664 de los archivos.
Gracias!
Solución
Se puede comprobar el permissions
del parent
que contiene el directorio que está tratando de eliminar.
Me suprimiendo algunos directorios scripts generados a principios de esta semana y hasta con sus permisos establecidos a 777
, yo todavía estaba recibiendo "permiso denegado" hasta que me di Write
acceso al directorio parent
.
Otros consejos
me encontré con el mismo problema antes y mi código se parecía a continuación:
function recurse_delete_dir($dir) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..') {
$child_file = $dir . $file;
if (is_dir($child_file)) {
recurse_delete_dir($child_file);
}
else {
unlink($child_file);
}
}
}
rmdir($dir);
}
}
Yo mismo pensaba que era problema de permisos, pero resultó que sólo necesitaba closedir
llamada antes rmdir
-ción. Por lo tanto:
closedir($dh);
rmdir($dir);
Tal vez su problema es similar a la mía?
No se puede usar rmdir () en un directorio que contiene los archivos. El directorio debe estar vacío antes de usar rmdir () para eliminarlo.