Я только что установил vsftp на свой сервер ubuntu 14. Я установил vsftp, также используя sudo apt-get install
команда. затем перезапустил ftp-сервер, но он отклонил все соединения для этой ошибки 500 OOPS: prctl PR_SET_SECCOMP failed
пожалуйста, посмотрите здесь.
aysael@srv:~$ sudo ftp
ftp> open 127.0.0.1
Connected to 127.0.0.1.
500 OOPS: prctl PR_SET_SECCOMP failed
/etc/vsftpd.conf
seccomp_sandbox=no
listen=YES
# Allow anonymous FTP? (Disabled by default)
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
ftpd_banner=Welcome to blah FTP service.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# This option specifies the location of the RSA key to use for SSL
# encrypted connections.
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Сообщение указывает, что prctl(PR_SET_SECCOMP, ...)
звонок не удался.
if (!tunable_seccomp_sandbox)
{
return;
}
...
ret = prctl(PR_SET_SECCOMP, 2, &prog, 0, 0);
if (ret != 0)
{
die("prctl PR_SET_SECCOMP failed");
}
Это может произойти, если в вашем ядре нет CONFIG_SECCOMP_FILTER
включен.
Цитата из prctl
страница руководства:
PR_SET_SECCOMP (начиная с Linux 2.6.23)
Установите режим безопасных вычислений (seccomp) для вызывающего потока, чтобы ограничить доступные системные вызовы. Режим seccomp выбирается через
arg2
. (Константы seccomp определены в<linux/seccomp.h>
...
С участием
arg2
установлен вSECCOMP_MODE_FILTER
(начиная с Linux 3.5) разрешенные системные вызовы определяются указателем на фильтр пакетов Беркли, переданным в arg3. Этот аргумент является указателем наstruct sock_fprog
; он может быть разработан для фильтрации произвольных системных вызовов и аргументов системного вызова. Этот режим доступен, только если ядро настроено сCONFIG_SECCOMP_FILTER
включен.
Вы должны иметь возможность обойти это, настроив vsftpd, чтобы не включать режим seccomp.
Использовать seccomp_sandbox=no
вариант в vsftpd.conf
.
Вариант не задокументирован.
Но похоже, у вас уже есть этот набор. Это может означать, что ваш vsftpd.conf
на самом деле не используется. Или что вы не перезапускали vsftpd, так как установили эту опцию.
Если у вас действительно установлена опция, вы никогда не должны получать сообщение об ошибке, как вы можете видеть в приведенном выше фрагменте кода (код вашего vsftpd 3.0.2).