![纠正 vsftpd“500 OOPS:无法更改目录”错误的设置是什么?](https://linux22.com/image/32984/%E7%BA%A0%E6%AD%A3%20vsftpd%E2%80%9C500%20OOPS%EF%BC%9A%E6%97%A0%E6%B3%95%E6%9B%B4%E6%94%B9%E7%9B%AE%E5%BD%95%E2%80%9D%E9%94%99%E8%AF%AF%E7%9A%84%E8%AE%BE%E7%BD%AE%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我的问题是我需要更改哪些设置和/或运行哪些命令才能登录到我的 vsftpd 系统?
当我使用 ftp 而不是 sftp 登录时,出现此错误:
Name (localhost:dbadmin): dbadmin
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/dbadmin
Login failed.
ftp>
这在使用 登录时有效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
我的登录名不在 user_list 中。
答案1
运行此命令,无需重新启动任何服务和服务器:
# setenforce 0
检查 SELinux 状态:
# getenforce
或者
编辑文件/etc/sysconfig/selinux
以包含
SELINUX=disabled
这样做需要重新启动。
答案2
虽然禁用 SELinuxSELINUX=disabled
可以解决问题,但这并不可取。您可以ftp_home_dir
通过运行以下命令配置 SELinux 布尔值来允许 ftp 用户访问其主目录:
setsebool -P ftp_home_dir=1
答案3
我按照这些说明禁用了 selinux这里。我能够不使用 sftp 登录。
要永久禁用,我编辑/etc/selinux/config
并设置
SELINUX=disabled
重启后,我就可以正常登录了。
答案4
用户可能对其主文件夹没有执行权限。履行:
chmod +x /home/user
或者,
chmod 700 /home/user