创建用户命令:如我的目录是根目录下的 MyWeb 用户名:xdh2571
#useradd -G ftp -d /MyWeb -M xdh2571
#passwd xdh2571
#chown xdh2571.ftp /MyWeb -R
#chmod 750 /MyWeb -R
#service vsftpd start
测试是否能登陆ftp
#ftp localhost
输入刚创建的用户名密码,如若登陆失败,解决以下问题:
1、查看MyWeb的权限
#ls -l
要保证MyWeb的权限至少是 root xdh2571
若两个都是root,则修改如下:
#chown -R root:xdh2571 MyWeb
2、有关SELinux
我的系统是:Red Hat Enterprise Linux 5
系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
//查看SELinux设置
# getsebool -a|grep ftp
ftpd_disable_trans --> off
或者
ftp_home_dir-->off
解决方法:
//使用setsebool命令开启
# setsebool ftpd_disable_trans 1
或者
# setsebool ftp_home_dir 1
再次查看当前状态是否是on的状态
# getsebool -a|grep ftp
ftpd_disable_trans --> on
或者
ftp_home_dir-->on
//setsebool使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1
# service vsftpd restart
有关selinux的配置
如关闭,仅仅警告,强制等等 需要编辑/etc/sysconfig/selinux 默认是强制
/***************************************************以下为相关知识点********************************************************/
查看当前SELinux设置和状态
- sestatus命令
# 当前SELinux开启设为启动,permissive模式,在当前状态下,可以使用setenforce 1改变为enforcing模式
[root@CentOS5 ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: disabled
Policy version: 21
Policy from config file: targeted
- 上面的输出是CentOS5中的,这里说明一下,sestatus这个命令在CentOS4/RHEL4(policycoreutils-1.18)和CentOS5/RHEL5(policycoreutils-1.33)中的默认输出不一样,在旧版本中,默认会同时输出详细的规则布尔值,而在新版本中默认不输出,使用-b开关可以打印这些布尔值,下面是旧版本(policycoreutils-1.18)中的输出样例
- [root@CentOS4 ~]# sestatus使用getenforce也可以查看当前状态
- 设置和修改SELinux状态
- setenforce
setenforce 1 # 设定selinux模式为enforcing
setenforce 0 # 设定selinux模式为permissive
# 注:当前SElinux为Disabled状态时,setenforce会执行失败,并警告:"setenforce: SELinux is disabled"
修改/etc/sysconfig/selinux:这个文件决定了系统启动时是否启用SELinux以及启动的模式