Intereting Posts
Сделать zsh завершение показать первое предположение на той же линии (например, рыбы) Linux будет загружаться только на ноутбуке, где он был установлен Определите, какой процесс занимает большую часть полосы пропускания диска? Как сохранить строковый литерал в переменную без замены или интерпретации? openssh: если ssh добавляет ключи к агенту по мере необходимости UTC Неправильно, пока RTC Okay Почему мой терминал bash не распознает какую-либо команду в оболочке? Сложность btrfs-send / btrfs-receive В Ansible динамической инвентаризации JSON я могу «рендерить» hostvars на основе имени хоста? Как скопировать файлы с других серверов, если локальная машина не работает mplayer: ошибка перемещения Доступ к GPIO после загрузки ядра Как исправить «Не удалось установить корневую файловую систему – не удалось открыть / dev / console» в RedHat после клонирования диска Как обновить File :: Path на моей Mac OS X как пользователь без полномочий root Скопируйте и вставьте файл / каталог из командной строки

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 

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