Linux搭建ftp服务器
-
安装vsftpd
# yum -y install vsftpd
-
进入到安装目录下进行配置
# cd /etc/vsftpd
你会看到以下的文件
其中 FtpResources文件夹是自己手动创建的,后面会告诉你这个文件夹怎么创建,这里可以忽略。
ftpusers和user_list是配置哪些用户可以登陆到ftp服务器;
vsftpd.conf是主要配置;如过你现在不做任何配置的修改,你现在就可以访问ftp服务,当然这是匿名访问,没有任何的用户登陆限制,这就说明可能任何人都可以在你的这台ftp服务器上操作上传和下载,也就没有文件的保密性。
一般来说我们会将某些特定的账户进行ftp登陆的访问、上传、下载等操作,所以我们接下来就将配置以下我们某些特定的用户来进行访问,限制匿名访问我们的ftp服务资源。
首先在当前目录下创建用户访问的资源文件夹FtpResources,编辑配置文件:# vi vsftpd.conf
修改几项配置参数: 1: anonymous_enable=NO # 这是不可匿名访问 2: anon_root=/etc/vsftpd/FtpResources # 这是匿名时资源文件访问的主目录 3:local_root=/etc/vsftpd/FtpResources # 这是非匿名时资源文件访问的主目录 4: userlist_enable=YES # 在/etc/vsftpd/user_list 文件中列出用户不能访问FTP 服务器 5: userlist_deny=NO # 当userlist_enable=YES时配置生效,user_list文件才会被使用,当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP ## 当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的 用户都会被拒绝登入; ## 当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用 户才会被准许登入
如果你想了解其他的配置信息,自行搜索哈哈哈哈哈哈哈其什么意思。 -
创建可以登陆访问ftp的用户
# useradd ftpuser -s /sbin/nologin # 创建ftpuser用户不允许登陆ssh # passwd ftpuser # 修改ftpuser的密码
-
将刚创建好的用户添加到 /etc/vsftpd/
-
重启vsftpd服务
service vsftpd restart
-
访问会提示你登陆用户名密码,输入正确如果进不到主目录文件夹下,修改以下配置
进入/etc/pam.d将vsftpd文件中的pam_shells.so改为pam_nologin.so,然后systemctl restart vsftpd重启服务,连接ftp成功 -
centos下vsftpd不能显示文件,不能创建文件及文件夹
centos下vsftpd登录正常,但不能显示文件,不能创建文件及文件夹 这是由于selinux的机制
通过命令 [root@localhost www]# getsebool -a|grep ftp 可以看到如下信息 allow_ftpd_anon_write --> off allow_ftpd_full_access --> off//创建文件及文件夹 allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off //显示文件夹及文件 ftpd_connect_db --> off ftpd_use_fusefs --> off ftpd_use_passive_mode --> off httpd_enable_ftp_server --> off tftp_anon_write --> off tftp_use_cifs --> off tftp_use_nfs --> off
用如下命令把以上信息设为ON
[root@localhost www]# setsebool allow_ftpd_full_access=1 之后再用命令 getsebool -a|grep ftp 查看 allow_ftpd_anon_write --> off allow_ftpd_full_access --> on//创建文件及文件夹 allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off ftpd_connect_db --> off ftpd_use_fusefs --> off ftpd_use_passive_mode --> off httpd_enable_ftp_server --> off tftp_anon_write --> off tftp_use_cifs --> off tftp_use_nfs --> off
这个时候刷新下ftp,就发现目录都显示出来了,再试试添加目录,添加文件操作都可以进行了,问题解决。