粗略算下来大致有三个问题:

 

1:修改/etc/sysconfig/selinux配置文件后系统无法启动问题

 

由于装vsftp后在win7下上传文件总是550,看网上有说修改该配置文件,把SELINUX=enforing改为disabled的,于是就尝试了,然后重启,悲剧了,虚拟机vmware提示“客户机操作系统cpu已被禁用,请关闭电源或重启虚拟机”。由于头一次遇到这中文提,所以也没怀疑到是刚才参数配置的。然后网上求救,各种修改虚拟机参数,修改vmware进程对应的cpu核数,结果都不起作用。

进不了系统,那还能干毛啊,没法,只得重装,好在重装很快,个把小时吧,又来了一遍,jdk,tomcat,sshd个性化参数配置等都处理了一边,然后又开始装vsftpd,一路ok,然后win登录,仍然550,重复上面操作,修改参数,重启,好吧,又死了。看来得确是修改/etc/sysconfig/selinux参数引起的,那就找解决方案吧,大致搜索了一番,较为靠谱的就是使用linux单用户进入系统,然后还原配置文件参数。那就开始吧:

1:进入启动画面后,当初先操作系统选择界面时候,按“e”,进入系统启动编辑界面。

2:上下键翻滚,选中kernel,然后点击“e”,进入编辑界面

3:在该行最后键入空格,然后输入" selinux=0 single",回车,返回上一界面,点击“b”。

4:   ok,进入单用户模式,把/etc/sysconfig/selinux参数还原,reboot,启动恢复正常(重启过程相对很慢,因为需要重新对整个文件系统进行标记)。

 

2:550:Permission deined

 

开始网上找的到几个类似问题解决方案,都是修改系统/etc/vsftpd/vsftpd.conf文件,把write_enable=NO改为YES即可,但我的配置文件里面本来就是这样的,然后接着找答案,发现有提到修改anon_upload_enable=YES,查看自己的配置文件,果真,这行是被注释的,去掉注释,重启服务,好了,550没有了,看来不同版本下注释的参数不一样啊,我的版本vsftpd-2.2.2-11。

 

3:553 could not create file

 

解决完上面的问题,就又开始553错误了,按照网上说的,输入如下命令:

setsebool -P ftpd_disable_trans 1

结果提示xxx(no such file or directory),就纳闷了,怎么好多方案到我这都不行呢,look for ing..

总算找到眼前一亮的了,输入如下命令:

getsebool -a |grep ftpd

返回:

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> off

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftpd_connect_db --> off

ftpd_use_passive_mode --> off

修改红色一行,把off改为on

setsebool allow_ftpd_full_access on

service vsftpd restart

win7下测试上传,成功!

 

分析整个过程,问题1和3都是因为对selinux相关内容和配置不熟悉造成的,问题2是因为vsftp版本差异造成参数值设置不同造成的后果。总之还是对linux 操作不熟练,还得多加训练啊。

getsebool,setsebool都是干神马的,你知道吗?