Когда я пытаюсь удалить файлы со своего ftp с помощью filezilla, я получаю следующую ошибку:
550 image.jpg: В доступе отказано
Права доступа к файлу для этого изображения - 644, пытался изменить его на что-то более высокое, но безуспешно ...
550 CHMOD 777 image.jpg: Операция запрещена
Пытался удалить из панели plesk, но то же самое.
Любые идеи? У меня vps хостинг с linux / centos.
Когда вы удаляете файл, вы не изменяете его, а изменяете его родительский каталог, удаляя filename
->inode
переписка. Файл может иметь несколько имен (жестких ссылок) в одной файловой системе. Когда счетчик ссылок inode становится равным 0, inode освобождается. Поэтому вам нужно изменить разрешения для родительского каталога, а не для файла.
Второй возможный случай - в файловых системах Linux файл может иметь атрибуты, которые могут предотвратить его удаление. Видеть man chattr
для подробностей.
У вас нет прав доступа к файлу. Вы не являетесь владельцем файла. Следовательно, вы не можете удалить или изменить права доступа к файлу. Попробуйте это в оболочке:
sudo rm -f image.jpg
Я нашел решение! Проблема была вызвана тем, что я создавал родительскую папку для файла с помощью функции php mkdir. Эта папка создавалась с разрешением 755 независимо от того, что я использовал в качестве второго параметра для функции mkdir. Решение состоит в том, чтобы добавить две волшебные строки до и после функции mkdir, например:
$old_mask = umask(0);
mkdir($folder);
umask($old_mask);
Я точно не знаю, что они делают, но сейчас это работает. Родительская папка имеет разрешение 777, и я могу удалить любые файлы внутри нее.
опубликовать
ls -la image.jpg
и попробуйте сделать что-нибудь вроде этого: