linux centos ftp安装以及配置

1.查看是否安装vsftp

[root@gcent ftpuser]# rpm -qa|grep vsftpd

 2.yum安装vsftp

[root@gcent /]# yum -y install vsftpd

3.建立虚拟用户口令库文件

在/etc/vsftpd/建立vconf文件夹

mkdir /etc/vsftpd/vconf

新建一个文本文件

cd /etc/vsftpd/vconf/
vim  vir_user

输入相应数据,文本文件的奇数行是FTP虚拟用户名,偶数行是FTP虚拟用户的密码

vuser
12345678

4.生成vsftpd认证文件

使用db_load命令生成认证文件

db_load -T -t hash -f vir_user /etc/vsftpd/vconf/vir_user.db

设置认证文件只对用户可读可写

chmod 600 /etc/vsftpd/vconf/vir_user.db

5.建立虚拟用户所需要的PAM配置文件

即在vsftpd.conf中有(没有就加)一条:
pam_service_name=vsftpd
所启用的vsftp就是/etc/pam.d/vsftpd文件,这个认证默认的设置是
使用本地用户登录时认证登陆ftp的本地用户权限的验证策略。
如果使用虚拟用户,那么上面文件默认的设置是不可以的,需要重新生成。

这里对/etc/pam.d/vsftpd进行修改,在#%PAM-1.0 下面加入,64位和32位还是有区别的

64位

auth sufficient /lib64/security/pam_userdb.so  db=/etc/vsftpd/vconf/vir_user
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user

32位(未经过测试)

auth required /lib/security/pam_userdb.so  db=/etc/vsftpd/vconf/vir_user
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user

6.创建ftp用户

添加ftp用户

useradd ftpuser2 -g ftp -s /sbin/nologin

赋予文件夹ftpuser的权限

chown ftpuser2 /home/ftpuser

7.设置vsftpd.conf

在vsftpd.conf中要更改一些设置

添加如下内容:
    guest_enable=YES        //支持虚拟用户
    guest_username=ftpuser2  //虚拟用户所映射的系统用户
    pam_service_name=vsftpd

完整代码:

listen=YES
listen_port=21
anonymous_enable=NO
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
/etc/vsftpd/chroot_list 代码
vuser
/etc/vsftpd/user_list代码
#root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

对不同的虚拟用户设置不同的权限

配置主配置文件vsftpd.conf,添加用户配置文件目录路径,如下:
      user_config_dir=/etc/vsftpd/vconf

建立用户配置文件,在/etc/vsftpd/vconf文件夹下

cd /etc/vsftpd/vconf
vim vuser

编辑用户的相应权限

local_root=/home/ftpuser
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=1048576

  

服务启动等命令

service vsftpd start   开启命令
service vsftpd restart 重启
service vsftpd stop   停止

补充问题

1.centos vsftp 500 OOPS: cannot change directory:/home/ftpuser

原因是他的CentOS系统安装了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

 2.ftp: connect :连接被拒绝

服务没有启动

service vsftpd start

 

  

 

posted on 2014-02-11 10:09  看我的眼神儿  阅读(106)  评论(0)    收藏  举报