Назад | Перейти на главную страницу

ubuntu ftp 500 OOPS: ошибка prctl PR_SET_SECCOMP

Я только что установил 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).