这几天弄vsftp,结果本地的帐号不能登录,,在登录的时候总是出现在我自己写的ftp程序中哈,出现我在发送命令pass的时候,格式是:pass(大写)+password /r/n的,命令和密码都是正确的,但是却总是要出现这个错误的response,我当时就物语了,错误为:500 OOPS: cannot change directory。自己就在网上查找资料,做出的更改是这样的:
首先,在自己的服务器配置文件中,设置本地用户允许登录
local_enable=YES
#anonymous_enable=YES(匿名用户被我注释掉了)
,发现自己最初还是去弄了一下pam,结果后来把pam的操作给还原后,还是没有出现问题,说明我的密码和pam的设置是无关的。
之后,在设置了vsconfig.conf文件之后,还是出现了那个错误,网上一搜,大家说的是selinux里面的配置出现了问题,也就是selinux主要是监控系统的安全,如果出现不安全的情况就会出错alert警告,于是去selinux的配置文件中,/etc/sysconfig中的selinux中看了一下,有一条是这样的,
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enable
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
我把红色的改成了disable了,重启ftp 后,发现还是不行,但是还是又点眉目了,于是掉用更简单的命令来执行这个,同时也不必把整个selinux的给disable掉,我只是需要把ftp的那部分给disable就可以了,在网上搜寻命令:
setsebool ftp_diabale_trans 1
结果出现了这个提示:
Could not change active booleans: Invalid boolean
不管他,继续写命令:
service vsftp restart
come on:
setsebool ftp_hom_dir =1
好没有报错。
再次的重启 ftp服务器。
再次的用本地的帐号去登录,结果,成功的登录了。