Intereting Posts
Что может вызвать задержку сети при установке нового Ubuntu Server 10.10? Удалить определенное слово в переменной Предупреждение о том, что addgroup пытается создать уже существующую группу пользователей Как включить USB с помощью linux-socfpga? Mount Samba Share (сервер Linux) на клиентской машине Linux Самый надежный способ проверки подключенного клиента? Трубопроводы для выхода цикла предотвращают изменение локальной переменной Запуск FTP с помощью xinetd Как загружается ядро? Удалите несколько строк из файла, используя grep Замените все пробелы в начале каждой строки вкладкой Заменить очень длинную строку в файлах рекурсивно Поведение Runlevels, когда скрипт kill завершился неудачно Преобразование файлов .docx в обычный текст и сохранение разрывов строк для поддержания ссылок на номера строк на исходный документ: howto & implications? Если мастер-ключ LUKS был скопирован один раз, имеет ли значение, что мы меняем LUKS pw?

VSFTPD, 553 Не удалось создать файл. – разрешения?

Я настроил VSFTPD на Amazon EC2 с AMI Amazon Linux. Я создал пользователя и теперь могу успешно подключиться через ftp. Однако, если я пытаюсь загрузить что-то, я получаю сообщение об ошибке «553 Не удалось создать файл».

Я предполагаю, что это связано с разрешениями, но я не знаю достаточно об этом, чтобы исправить это. Итак, что я должен делать, чтобы загружать файлы?

Есть две причины, по которым это может произойти: у вас нет прав на запись и выполнение для каталогов, ведущих к каталогу, который вы пытаетесь загрузить, или vsftpd настроен так, чтобы вы не могли загружать его.

В первом случае используйте chmod и chown соответствующим образом, чтобы убедиться, что ваш пользователь имеет эти разрешения для каждого промежуточного каталога. Бит записи позволяет затронутому пользователю создавать, переименовывать или удалять файлы в каталоге и изменять атрибуты каталога, в то время как бит чтения позволяет затронутому пользователю перечислить файлы в каталоге. Поскольку промежуточные каталоги на пути также влияют на это, разрешения должны быть установлены соответствующим образом, вплоть до конечного пункта назначения, на который вы собираетесь загрузить.

В последнем случае посмотрите на свой vsftpd.conf . write_enable должна быть правдой, чтобы разрешить запись (и по умолчанию это false). В этом файле конфигурации есть хорошая документация по man 5 vsftpd.conf .

Не могли бы вы попробовать

 chown -R ftpusername /var/www/html 

Команда ftp put /path/to/local_file не работает с vsftpd . Попробуйте следующее:

 ftp put /path/to/local_file remote_file_name 

Вы можете выбрать любое имя для имени remote_file_name , но вы должны указать его.

Домашний каталог FTP (ftp_home_dir) скорее всего отключен в SeLinux. Чтобы просмотреть статус файлов управления ftpd введите: getsebool -a и найдите раздел ftpd. Вы можете заметить, что ftp_home_dir отключен. Чтобы включить его, используйте следующую команду: setsebool -P ftp_home_dir=1

Проверьте свои данные с помощью getsebool -a , затем повторите попытку загрузки.

Примечание: игнорировать знаки препинания

У меня была такая же проблема и исправлено изменение SELinux, чтобы разрешить запись в папке, которую я настроил для использования vsftp = /var/ftp/pub .

Эти ссылки могут быть полезны:

Если вы не хотите идти дальше со своим SELinux, не меняйте его, так что вы увидите по умолчанию /etc/selinux/config

 SELINUX=enforcing 

то просто запустите команды как root или sudo :

 sudo setsebool -P ftpd_anon_write 1 sudo setsebool -P ftpd_full_access 1 

как уже описано выше в других комментариях.

Другая возможность: проверить дисковые квоты для пользователя / группы

доб:

 repquota -a 

XFS:

 xfs_quota -x -c 'report' /mount_point 

Для Fedora23 выполните команды:

 setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Это сработало для меня.