正如主题中所述,问题出在 vsftpd 上。一段时间以来,我正常使用它,一切正常。但是一旦我启动 vsftpd,它就会发出以下消息:
500 OOPS:配置文件不属于正确的用户,或者不是文件
经过一番搜索我尝试:
通过以下方式更改 vsftpd.conf 文件的所有者
sudo chown root vsftpd.conf
;删除 vsftpd 并重新安装;
- 清除 vsftpd 并重新安装;
- 删除conf文件的内容并从互联网上粘贴示例。
没什么帮助,从此就没用了。它是 Ubuntu 16.04
先感谢您。
答案1
我不知道你是否还需要这个,但我最近遇到了同样的问题,我在谷歌上搜索后发现这一页我发现的主要区别是,我尝试通过键入以下内容来启动服务器:
# vsftpd
代替:
# systemctl start vsftpd
在终端中。希望这能有所帮助。
答案2
$ vsftpd &
[1] 7685
500 OOPS: 配置文件不属于正确的用户,或者不是文件
vsftpd
在作为后台进程运行时出现错误。
我无法解决该错误,但我成功运行了该服务。
运行以下命令(在 Ubuntu 中)对我来说很有效:
$ sudo chown root:root /etc/vsftpd.conf
$ ls -lt /etc/vsftpd.conf
-rwxr-xr-x 1 root root 4429 Sep 12 00:26 /etc/vsftpd.conf
$ sudo service vsftpd start
$ sudo service vsftpd status
vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-09-12 00:47:46 IST; 4s ago
Process: 7882 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 7883 (vsftpd)
Tasks: 1 (limit: 4531)
CGroup: /system.slice/vsftpd.service
└─7883 /usr/sbin/vsftpd /etc/vsftpd.conf
Sep 12 00:47:46 <Mysystemname>-G1 systemd[1]: Starting vsftpd FTP server...
Sep 12 00:47:46 <Mysystemname>-G1 systemd[1]: Started vsftpd FTP server.
注意:此状态之后,FTP 已在端口 21 上成功运行。
$ nmap 127.0.0.1
Starting Nmap 7.60 ( https://nmap.org ) at 2019-09-12 00:50 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
答案3
“虚拟”用户
如果你的 root:root-owned 中有/etc/vsftpd.conf
类似
user_config_dir=/etc/vsftpd/users
以便用户joe
使用进一步的配置/etc/vsftpd/users/joe
,那么该目录和该文件必须还由 root 所有并且不可被其他人读取。
不同之处在于,在这种情况下,仅会显示 500 OOPS登录成功后(即一旦vsftpd
确定你是用户joe
,然后可以读取适当的配置文件)。
答案4
这个答案很好地表明了问题所在。在我的例子中,下面的命令是原因:
#*** 分两步阻止对 shell 的访问 ****
#1) 将用户的 shell 分配给 false
usermod -s /bin/false
#2) 将 false 添加到 shell 列表
echo /bin/false >> /etc/shells
注释掉它们后,服务器启动了。因此,首先确保服务器以管理员用户身份运行,然后以 ftp 用户身份与其他用户一起执行操作。