大家好,今天给各位分享centos搭建ftp服务器的一些知识,其中也会对如何在Centos下安装ftp服务器进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
一、如何在Centos下安装ftp服务器
一:安装vsftpd
查看是否已经安装vsftpd
2
二:基于虚拟用户的配置
所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统。
修改配置文件
配置文件贴出来吧
3
三:使用Berkeley DB进行认证
yum install db4 db4-utils
然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt,注意奇行是用户名,偶行是密码
4
接着,生成虚拟用户认证的db文件
编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
最后,创建虚拟用户配置文件
5
设置FTP根目录权限
最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限
6
添加防火墙,把ftp的21端口开放 vi/etc/sysconfig/iptables
7
经过以上步骤我们就完成了ftp服务器的搭建,让我们畅游ftp吧
二、怎么搭建linux centos服务器
把在本地开发的php+mysql程序通过FTP架设到web服务器,并能通过域名正常访问网站。
END
步骤/方法
第一步:创建FTP
================================================================
chmod go+rwx/data《给data分配权限》
cd/data《进入data分区》
mkdir web《建立web目录》
chmod go+rwx/data/web
cd/《回到根目录,个人操作习惯,可跳过这步》
useradd ftpusername-d/data/web/cqwebseo.《添加FTP,ftpusername改为你的FTP用户、cqwebseo.改为你FTP对就的网站目录》
passwd cqwebseo《设置FTP密码》
echo cqwebseo>>/etc/ftpchroot《设置FTP用户只访问自己网站目录内的文件,不能访问其它目录。这点很重要》vi/etc/vsftpd/vsftpd.conf《修改FTP配置文件》
注:按一下i进入到编辑模式,修改完后按一下ESC退出编辑模式,再输入《:wq》(其作用是保存改修改并退出)《:q!》退出不保存《:q》没有做过修改用这个退出
idle_session_timeout
data_connection_timeout
找到这两个,,修改其值大于900,如果不修改这个的话,,FTP很慢
#xferlog_file
找到这个,删除#。。。作用是记录FTP的日志
/etc/init.d/vsftpd restart《重启FTP后配置文件才会生效》
到此第一步OK你可用FTP登陆啦!
注:我这配置有这个问题没解决,登陆报超时,但你耐心的等一会,就会好,如果有盆友知道解决方法的,请帮解答一下。。。谢谢。。
======================================================================
第三步:配置mysql
==============================================================================
/usr/local/mysql/bin/mysql-uroot-p《登陆mysql,按一下ENTER然后输入mysql密码,默认和万网root密码一样》
use mysql;《选择mysql表》
grant all on cqwebseo_db.* to cqwebseo@localhost identified by'cqwebseomysql';《添加一个数据,有所有权限,cqwebseo_db为数据库名,cqwebseo为用户名,cqwebseomysql为密码》
flush privileges;《不用解释吧,真就度娘一下。》
exit;《这个也不用说吧》
/usr/local/mysql/bin/mysqladmin-uroot-p8y6v8a3c7u shutdown《停止mysql》
/usr/local/mysql/bin/mysqld_safe《启动mysql》
到此。。就Ok。注意。。注意。。。。。分号分号分号
/usr/local/mysql/var《数据库存放目录》
================================================================================
第二步:配置d.conf
=======================================================================
echo hi! Tis test!/data/web/cqwebseo.> index.php《在cwebseo.里面建立一个内容为hi!Tis test!的index.php文件》
vi/var//conf/d.conf《进入主战场》
按上下键,翻到文档最后,然后加入下列表代码(不知道怎么加进的,看第一步的注意事项)
<VirtualHost*:80>
DocumentRoot/data/web/cqwebseo
DirectoryIndex index.php
ServerAdmin
ServerName cqwebseo.
ServerAlias
#ErrorLog/data/web/sanmao/log/error.log
#TransferLog/data/web/sanmao/log/aess.log
</VirtualHost>
简单说一下。。。。。。网上有很多这方面的资料
DocumentRoot/data/web/cqwebseo这个就是网站的决对说白就是你分配给他的FTP
DirectoryIndex index.php这个表示网站默认首页是index.php
ServerAdmin 服务管理员的邮箱
ServerName cqwebseo.这个你懂的
ServerAlias 这个也不需要解释吧
余下的两个被我注释掉喽,,,意思是网站的日志文件存放地
var//bin/apachectl restart重启apachectl
var//bin/apachectl stop停止apachectl
var//bin/apachectl start启动apachectl
OK到这里。。第二步就完。。。你能输入网址。。。看到这个目录啦。。不过有个前题条件。。这个个域名要解析过来了滴哈。。不然的话。。你就不要输入域名那两个。。用你服务的IP访问也行的。。。。如果你操作正确啦。。就能看到网页上出现hi! Tis test!
=========================================================================
三、如何在linux下开启FTP服务
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令rpm-qa|grepvsftpd来查看是否安装相应的包,如果没有安装那么可以执行yum-yinstallvsftpd来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:
useradd-s/sbin/nologin-d/home/ftp_testftp_test
目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,
可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:
passwd ftp_test
执行之后输入2次密码确认就设置好了密码
然后编辑vsftpd配置文件,位置是:vim/etc/vsftpd/vsftpd.conf
找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录
现在保存配置文件,执行systemctl start vsftpd.service启动vsftp服务,然后可以通过命令:systemctl status vsftpd.service查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常
现在基本的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属于比较新的版本,为了安全*做了一些限制,如果你此时想通过chmoda-w/home/ftp_test来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:
配置完这两项以后保存退出,然后执行systemctl restart vsftpd.service重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的
现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户