Я настроил VSFTPD на Amazon EC2 с Amazon Linux AMI. Я создал пользователя и теперь могу успешно подключиться через ftp. Однако, если я пытаюсь загрузить что-то, я получаю сообщение об ошибке «553 Не удалось создать файл».
Я предполагаю, что это связано с разрешениями, но я недостаточно знаю об этом, чтобы иметь возможность это исправить. В общем, что я должен сделать, чтобы иметь возможность загружать файлы?
permissions
ftp
vsftpd
amazon-ec2
Джефф Шаллер
источник
источник
Ответы:
Это может произойти по двум причинам: у вас нет прав на запись и выполнение для каталогов, ведущих к каталогу, в который вы пытаетесь загрузить файл, или
vsftpd
он настроен так, чтобы не разрешать загрузку.В первом случае используйте
chmod
иchown
при необходимости убедитесь, что у вашего пользователя есть эти разрешения для каждого промежуточного каталога. Бит записи позволяет затронутому пользователю создавать, переименовывать или удалять файлы в каталоге и изменять атрибуты каталога, в то время как бит чтения позволяет затронутому пользователю перечислять файлы в каталоге. Поскольку промежуточные каталоги в пути также влияют на это, необходимо правильно установить разрешения, ведущие к конечному месту назначения, в которое вы собираетесь загружать.В последнем случае посмотрите на свои
vsftpd.conf
.write_enable
должно быть true, чтобы разрешить запись (и по умолчанию false). Существует хорошая документация по этому файлу конфигурации наman 5 vsftpd.conf
.источник
Не могли бы вы попробовать это
источник
Команда
ftp put /path/to/local_file
не работает сvsftpd
. Попробуйте следующее:Вы можете выбрать любое имя, которое хотите
remote_file_name
, но вы должны указать его.источник
/path/to/
не существует (и / или не доступен через сеанс FTP) на сервере. Вот почемуftp put local_file
делает работу без явного назначения. (Подсказка: проверьтеlocal: … remote: …
линию в FTP-клиенте.)Домашний каталог 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
затем просто запустите команды от имени пользователя root или с помощью
sudo
:как уже описано выше в другом комментарии.
источник
Проверьте ваши
vsftpd.conf
настройки:Если он установлен на
YES
, это также вызовет553 Could not create file
.От: http://www.vsftpd.beasts.org/vsftpd_conf.html
источник
Попробуй это
источник
Другая возможность: проверить дисковые квоты для пользователя / группы
доб:
XFS:
источник
Следующий параметр даст ftpd доступ для записи куда угодно:
Не используйте,
ftpd_anon_write
если вы не хотите, чтобы анонимные загрузки были разрешены.источник
Вероятно, в имени файла содержатся неподдерживаемые символы
источник
Для Fedora23 выполните команды:
Это сработало для меня.
источник