CentOS 7.4 搭建ftp服务器
准备:写博客前先确认了下linux的版本信息,害怕写错了版本信息,再把小伙伴们误入歧途了哈哈。然后贴出查看当前linux系统版本信息的命令:1.Linux查看版本当前操作系统内核信息[root@VM_0_12_centos /]# uname -aLinux VM_0_12_centos 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:0...
准备:
写博客前先确认了下linux的版本信息,害怕写错了版本信息,再把小伙伴们误入歧途了哈哈。然后贴出查看当前linux系统版本信息的命令:
1.Linux查看版本当前操作系统内核信息
[root@VM_0_12_centos /]# uname -a
Linux VM_0_12_centos 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2.Linux查看当前操作系统版本信息
[root@VM_0_12_centos /]# cat /proc/version
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
3.Linux查看版本当前操作系统发行版信息
[root@VM_0_12_centos /]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
正文正文:
通过搭建vsftpd服务来实现ftp服务好像是当前通用的方法,那咱们就试一试搭建vsftpd服务;
1.查看系统中是否安装了vsftpd
# rpm -qa | grep vsftpd
2.安装vsftpd
# yum -y install vsftpd
再次运行1的命令:vsftpd-3.0.2-22.el7.x86_64;说明安装成功!
3.创建用户
# useradd -s /sbin/nologin -d /var/testftp/img imac
useradd命令用于Linux中创建的新的系统用户。
useradd可用来建立用户帐号。
帐号建好之后,再用passwd设定帐号的密码.
可用userdel删除帐号。
使用useradd指令所建立的帐号,实际上是保存在/etc/passwd
文本文件中。
另附:
useradd(选项)(参数)
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s<shell>:指定用户登入后所使用的shell;
-u<uid>:指定用户id。
4.为用户创建密码
passwd imac
passwd 后跟用户账号,回车输入两次之后密码创建成功。
4.编辑vsftpd配置文件,修改配置
ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是:
ftpusers 该文件用来指定那些用户不能访问ftp服务器。
user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
vsftpd.conf vsftpd的主配置文件
修改配置文件,配置不允许匿名用户登录
位置:/etc/vsftpd/vsftpd.conf
修改:anonymous_enable 改为 NO (默认:YES)
然后重启vsftp服务。
5.启动vsftp服务
systemctl start vsftpd.service #启动服务
systemctl restart vsftpd.service #重启
systemctl stop vsftpd.service #重启
systemctl status vsftpd.service #状态
6.链接测试
用ftp链接工具,我用的是uftp8;用什么无所谓了,反正,我连上了,哈,这时候就会发现,链接的默认目录就是在创建用户的时候设置的用户目录,我的是“/var/testftp/img imac”。
7.配置让ftp用户只在自己的目录下面活动
但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录。
同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动。
如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2 属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限
离线安装ftp 请参考:https://www.cnblogs.com/hmagogo/p/7065956.html
更多推荐
所有评论(0)