Answers:
该消息表明prctl(PR_SET_SECCOMP, ...)
呼叫失败。
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)允许通过一个指向Berkeley包过滤器中定义的系统调用在ARG3通过。这个参数是指向struct sock_fprog
; 它可以设计为过滤任意系统调用和系统调用参数。仅当内核配置为CONFIG_SECCOMP_FILTER
启用时,此模式才可用。
作为较差的解决方法,可以将vsftpd配置为不启用seccomp模式。
使用中的seccomp_sandbox=no
选项vsftpd.conf
。
该选项似乎没有记录。
在某些Linux内核(最著名的是从6.5版开始的RHEL / Centos 6.x)中,出现vfstpd错误的原因是vsftpd的资料中的以下假设:
https://github.com/dagwieers/vsftpd/blob/master/seccompsandbox.c#L642
ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);
if (ret != 0)
{
if (errno == EINVAL)
{
/* Kernel isn't good enough. */
return;
}
die("prctl PR_SET_NO_NEW_PRIVS");
}
if (!tunable_seccomp_sandbox)
{
return;
}
[ ... ]
ret = prctl(PR_SET_SECCOMP, 2, &prog, 0, 0);
if (ret != 0)
{
die("prctl PR_SET_SECCOMP failed");
}
With https://rhn.redhat.com/errata/RHSA-2015-0864.html Redhat added:
Note: the fix for this issue is the kernel part of the
overall fix, and introduces the PR_SET_NO_NEW_PRIVS functionality and the
related SELinux exec transitions support.
This breaks vsftpd's assumption above that any kernel which supports PR_SET_NO_NEW_PRIVS
also supports PR_SET_SECCOMP
mode 2.
vsftpd silently ignores the EINVAL
from the first prctl()
but fails with the shown error message on the second.
The configuration parameter Martin Prikryl mentioned above is merely making it exit cleanly just after the (now-successful) first prctl()
,在较早的内核之前/之前,它在该调用中干净/安静地退出了。
Response: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
vsftpd返回的“ 500 OOPS”错误是一种安全措施,旨在默认情况下防止FTP用户进行可写根访问。要解决此问题,有两个主要选项。
允许可写的用户root访问
最简单的方法是再次更改/etc/vsftpd.conf文件并启用一个特定设置:
nano /etc/vsftpd.conf
编辑文件,使其类似于以下内容:
# Allow users to write to their root directory
allow_writeable_chroot=YES
https://uk.godaddy.com/help/how-to-set-up-an-ftp-server-on-ubuntu-1404-12301