我的问题是我需要更改哪些设置和/或运行哪些命令才能登录到我的 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