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
浙公网安备 33010602011771号