纠正 vsftpd“500 OOPS:无法更改目录”错误的设置是什么?

oct*_*bus 15 permissions centos vsftpd

我的问题是我需要更改哪些设置和/或运行命令以允许我登录到我的 vsftpd 系统?

当我使用 ftp 而不是 sftp 登录时,出现此错误:

Name (localhost:dbadmin): dbadmin
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/dbadmin
Login failed.
ftp> 
Run Code Online (Sandbox Code Playgroud)

这在使用 登录时有效sftp@,但我的服务器在防火墙后面,我需要能够使用 ftp 和 sftp 登录。

我一直在查看很多关于“OOPS”错误的帖子,但到目前为止都没有成功登录。

以下是有关我的系统和设置的一些信息:

我正在运行 CentOS 6.4。

iptables 和 ip6tables 被停止和禁用。

我的主目录受保护 700,我尝试了 750,只是想看看这是否有所不同。它没。

以下是活动线路 /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
Run Code Online (Sandbox Code Playgroud)

我的登录名不在 user_list 中。

小智 11

运行此命令,无需重新启动任何服务和服务器:

# setenforce 0
Run Code Online (Sandbox Code Playgroud)

要检查 SELinux 状态:

# getenforce
Run Code Online (Sandbox Code Playgroud)

或者

编辑文件/etc/sysconfig/selinux以包含

SELINUX=disabled
Run Code Online (Sandbox Code Playgroud)

这样做将需要重新启动。

  • 有趣的是,一年半前我对几乎相同的答案投了反对票。 (3认同)

小智 7

虽然禁用 SELinuxSELINUX=disabled可以解决问题,但建议不要这样做。您可以ftp_home_dir通过运行以下命令配置 SELinux 布尔值来启用 ftp 用户访问他的主目录:

setsebool -P ftp_home_dir=1
Run Code Online (Sandbox Code Playgroud)