Я соглашаюсь с Michael, но одно место, где оно может иметь значение, $0
параметр.
Я видел сценарии, которые исследуют название $0
и сделайте разные вещи, основанные на том, какое символьное имя используется.
Два предложения:
Любой идентификатор пользователя, который будет работать, FTP имеют полномочия "записи" на "корневом" каталоге, который vsftpd будет использовать в качестве своего текущего рабочего каталога? vsftpd не хочет перезаписываемый рабочий каталог.
vsftpd.conf
файл может иметь a hide_file
директива. В зависимости от регулярного выражения, указанного той директивой, анонимным пользователям нельзя было бы разрешить видеть файлы.
У меня была эта проблема с vsftpd в прошлом, и я вспоминаю наличие установки vsftpd.conf, которая вызвала его, таким образом прочитайте тот файл конфигурации тесно, поймите все параметрические усилители и их значения.
Я просто заставил свой VSFTPD работать только в активный режим, и это, казалось, работал для меня. Для этого введите следующую строку в вашем файле конфигурации:
pasv_enable=NO
То, что я оказался, хотя и включил пассивный режим, что и для некоторых приложений, которые оказалось требованием. Похоже, VSFTPD не играет с использованием по умолчанию, чтобы лучше указать ваши предпочтения явно:
pasv_enable=YES
Также важно получить правильные настройки iptables, если вы запустите брандмауэр. Вот мои, извлеченные из моего / etc / sysconfig / iptables
:
# FTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1024:65535 -j ACCEPT
Если ваша конфигурация верна и это не проблема брандмауэра, это вполне может быть SELinux, в моем случае это было, и ответ был:
setsebool -P allow_ftpd_full_access 1
Со страницы man:
Если вы хотите разрешить FTP-серверам входить в систему локальным пользователям и чтение/запись всех файлов в системе, управляемой DAC, необходимо включить allow_ftpd_full_access boolean
Благодарность user81029 за указание
sudo setsebool -P allow_ftpd_full_access 1
решает проблему с пустым каталогом ftp после mount --bind
папку в / var / ftp / на SELinux
Если вы пытались составить список каталогов с помощью таких команд, как ls
, dir
, это не поможет.
Если вы используете любой FTP-клиент с графическим интерфейсом, например filezilla
, будут показаны все каталоги.
, если SELinux включен, пробовали ли вы команду setenforce 0
? Обратите внимание, он временно переходит в разрешительный режим.
В /etc/vsftpd.conf
задаватьseccomp_sandbox=NO
Исправлено для меня, сообщается какhttps://bugzilla.opensuse.org/show_bug.cgi?id=1173275
Я знаю, что вы пытались отключить брандмауэр, и это решение не применимо к вам, но оно может помочь кому-то другому
В моем случае мне пришлось разрешить ОБА порта 20 и 21
ufw allow ftp
И
ufw allow 20/tcp
hide_file
, это не установлено в файле конфигурации, который согласно странице справочника Unixvsftd.conf
не должен быть установлен ни на (один). – saeedn 02.02.2012, 08:49