A mensagem indica que a chamada prctl(PR_SET_SECCOMP, ...)
falhou.
if (!tunable_seccomp_sandbox)
{
return;
}
...
ret = prctl(PR_SET_SECCOMP, 2, &prog, 0, 0);
if (ret != 0)
{
die("prctl PR_SET_SECCOMP failed");
}
Isso pode acontecer quando o seu kernel não tem o CONFIG_SECCOMP_FILTER
habilitado.
Citação da prctl
man page :
PR_SET_SECCOMP (since Linux 2.6.23)
Set the secure computing (seccomp) mode for the calling thread, to limit the available system calls. The seccomp mode is selected via
arg2
. (The seccomp constants are defined in<linux/seccomp.h>
...
With
arg2
set toSECCOMP_MODE_FILTER
(since Linux 3.5) the system calls allowed are defined by a pointer to a Berkeley Packet Filter passed in arg3. This argument is a pointer tostruct sock_fprog
; it can be designed to filter arbitrary system calls and system call arguments. This mode is available only if the kernel is configured withCONFIG_SECCOMP_FILTER
enabled.
Você deve conseguir solucionar isso configurando o vsftpd para não ativar o modo seccomp .
Use a opção seccomp_sandbox=no
no vsftpd.conf
.
A opção não parece estar documentada.
Mas você parece ter esse conjunto já. Isso pode indicar que seu vsftpd.conf
não está sendo usado de fato. Ou que você não reiniciou o vsftpd desde que você definiu a opção.
Se você tem a opção realmente definida, você nunca deve receber a mensagem de erro, como você pode ver no trecho de código acima (código do seu vsftpd 3.0.2).