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
arg2set 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_FILTERenabled.
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).