Что происходит, если Вы не делаете корпуса это в { }
, и только используйте " "
%file
"$AXIS2_C"/bin/services/services.xml
(или даже без " "
вообще)
Существует две вероятных причины, что это могло произойти - Вы не имеете записи и выполняете полномочия на продвижении каталогов к каталогу, который Вы пытаетесь загрузить на, или vsftpd
настроен, чтобы не позволить Вам загружать.
В бывшем случае использовать chmod
и chown
как соответствующий, чтобы удостовериться, что у Вашего пользователя есть эти полномочия на каждом промежуточном каталоге. Запись укусила, позволяет нужному пользователю создавать, переименовывать, или удалять файлы в рамках каталога и изменять атрибуты каталога, пока чтение укусило, позволяет нужному пользователю перечислять файлы в рамках каталога. Так как промежуточные каталоги в пути также влияют на это, полномочия должны быть установлены, соответственно ведя до окончательного места назначения, на которое Вы намереваетесь загрузить.
В последнем случае посмотрите на Ваш vsftpd.conf
. write_enable
должно быть верным, чтобы позволить писать (и это - ложь по умолчанию). Существует хорошая документация относительно этого конфигурационного файла в 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
, затем повторите попытку загрузки.
Примечание. Не обращайте внимания на знаки препинания
Другая возможность: проверьте дисковые квоты для пользователя/группы
ext:
repquota -a
xfs:
xfs_quota -x -c 'report' /mount_point
Для Fedora23 выполните команды:
setsebool -P ftpd_anon_write 1
setsebool -P ftpd_full_access 1
У меня это сработало.
У меня была та же проблема, и я исправил изменение 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
, как уже было описано выше в другом комментарии.
Проверьте vsftpd.conf
для этой настройки:
guest_enable=YES # set it to NO then restart the vsftpd service.
Если установлено значение YES
, это также вызовет ошибку 553 Could not create file
.
Из:http://www.vsftpd.beasts.org/vsftpd_conf.html
guest_enable If enabled, all non-anonymous logins are classed as "guest" logins. A guest login is remapped to the user specified in the guest_username setting.
Default: NO
В моем случае пользователь ftp не имел прав доступа к каталогу, в котором он находился .
Я просто забыл перейти в целевой каталог, для которого у меня действительно были права доступа.
Следующий параметр даст ftpd доступ для записи куда угодно:
setsebool -P ftpd_full_acess=true
Не используйте ftpd_anon_write
, если вы не хотите разрешить анонимную загрузку.
В моем случае (CentOS7 + vsftpd )изменение прав доступа к каталогу на 775 командой "chmod 775 /home/user/ftpdir/" не помогло.
Я проверил статус selinux с помощью команды «sestatus», он был включен, я перечислил параметры, связанные с ftp :«getsebool -a|grep ftp»
и включил отключенную опцию ftpd _полный _доступ командой «setsebool ftpd _полный _доступ вкл». Затем он начал записывать файл.