php wont supprimer 775 dir chmod
-
01-10-2019 - |
Question
OK aide-moi à comprendre.
J'ai 2 utilisateurs dans mon système Linux qui font tous deux partie du groupe « web-utilisateurs ».
est une www-données utilisées par le serveur Web et php-cgi est mon ftp utilisateur
quand je télécharge des fichiers via ftp, ils sont mis à 775 pour dirs et 664 pour les fichiers, quand je lance un script sur le serveur (donc même groupe comme l'utilisateur ftp) pour supprimer ce répertoire et fichiers à l'intérieur: unlink pour les fichiers œuvres ok, mais l'autorisation de travail commande rmdir ne marche pas de retour refusé !? Et oui, le répertoire est supprimé après est vidé.
pourquoi est-ce que 775 signifie que l'utilisateur du groupe peut supprimer tout comme 664 pour les fichiers.
Merci!
La solution
Vous pouvez vérifier la permissions
du parent
qui contient le répertoire que vous essayez de supprimer.
Je supprimait certains répertoires générés par un script plus tôt cette semaine et même avec leurs autorisations mis à 777
, je continuais « permission denied » jusqu'à ce que je me suis donné Write
accès au répertoire parent
.
Autres conseils
Je rencontre le même problème avant et mon code ressemblait ci-dessous:
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);
}
}
Je me suis dit qu'il était question d'autorisation, mais il est apparu que je devais juste appel closedir
avant rmdir
-ing. Donc:
closedir($dh);
rmdir($dir);
Peut-être que votre problème est semblable à la mienne?
Vous ne pouvez pas utiliser rmdir () sur un répertoire qui contient des fichiers. Le répertoire doit être vide avant d'utiliser rmdir () pour le supprimer.