linux下ftp的安装

简介:
 经过度娘,相关文档,以及实际操作后编写此文章,如有不当之处,请留言,谢谢。

1. 安装vsftpd组件

yum -y install vsftpd

2. 添加一个ftp用户

此用户就是用来登录ftp服务器用的。
[root@bogon ~]# useradd ftpuser
这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser.

3. 给ftp用户添加密码。

[root@bogon ~]# passwd ftpuser
    输入两次密码后修改密码。

至此,你可以使用ftp了。
可能会遇到的问题:
无法使用root用户登录,报错:530 Permission denied
解决方法:

vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。
vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
3.配置修改完成后,执行service vsftpd restart/systemctl restart vsftpd.service重启vsftpd服务。

然而想修改ftp的相关配置,请参照第4步。


如果需要开机自启,请查看第5步。


一些可能会用到的操作,请查看第6步(拓展)

4.修改配置(酌情设置,也可不设置,遵循默认设置)

[root@vmware1 vsftpd]# vim vsftpd.conf

内容(根据自身情况使用):
anonymous_enable=NO                    #不允许匿名用户登陆 
local_enable=YES                      #vsftpd所在系统的用户可以登录vsftpd 
write_enable=YES                      #允许使用任何可以修改文件系统的FTP的指令 
local_umask=002                        #匿名用户新增文件的umask数值 
anon_upload_enable=NO                  #匿名用户不可以上传文件 
anon_mkdir_write_enable=NO            #匿名用户不可以修改文件 
xferlog_enable=YES                    #启用一个日志文件,用于详细记录上传和下载。                
use_localtime=YES                      #使用本地时间而不是GMT 
vsftpd_log_file=/var/log/vsftpd.log    #vsftpd日志存放位置 
dual_log_enable=YES                    #用户登陆日志 
connect_from_port_20=YES              #开启20端口      
xferlog_file=/var/log/xferlog          #记录上传下载文件的日志 
xferlog_std_format=YES                #记录日志使用标准格式 
idle_session_timeout=600              #登陆之后超时时间60秒,登陆之后,一分钟不操作,就会断开连接。 
chroot_local_user=YES                  #用于指定用户列表文件中的用户,是否允许切换到上级目录      
listen=YES                            #开启监听 
pam_service_name=vsftpd.vu            #验证文件的名字 
userlist_enable=YES                    #允许由userlist_file指定文件中的用户登录FTP服务器                    
tcp_wrappers=YES                      #支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny) 
guest_enable=YES                      #起用虚拟用户 
guest_username=taokey                  #虚拟用户名 

#user_config_dir=/etc/vsftpd/vsftpuser  #虚拟用户配置文件路径 
local_root=/usr/local/ftpFiles #自定义ftp上传路径(注意文件夹权限)
pasv_min_port=35000  
pasv_max_port=45000 
pasv_enable=YES 
pasv_promiscuous=YES 
anon_other_write_enable=YES

关闭并保存配置文件,重启vsftpd
[root@localhost /]# service vsftpd restart

注意
 如果使用上面的设置,使用ftp客户端操作时,可能会报错,具体解决方案如下:
1. 报错:bug:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

//需要在/etc/vsftpd.config配置文件的任意位置添加如下配置:
    allow_writeable_chroot=YES

2.无法改变目录及上传文件

//无法上传
local_root = /etc/vsftpd/upload
chmod -R 777 /etc/vsftpd/upload
这就可以上传了。

//无法改变目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

//把ftp登录用户加进去
vim /etc/vsftpd/chroot_list
# add users you allow to move over their home directory
ftpuser

5. 设置开机启动vsftpd ftp服务

[root@bogon ~]# chkconfig vsftpd on
Note: Forwarding request to 'systemctl enable vsftpd.service'.
执行:
systemctl enable vsftpd.service

6. 拓展(视情况可能会用到)

6.1 防火墙开启21端口

因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件

[root@bogon ~]# vim /etc/sysconfig/iptables

在行上面有22 -j ACCEPT下面另起一行输入跟那行差不多的,只是把22换成21,然后:wq保存。(如果不明白请找度娘)
然后,重启iptables

//service iptables restart 网上使用这个命令,但我的不能用,故使用如下命令。 
[root@bogon ~]# systemctl restart iptables

6.2 设置selinux不开启

编辑/etc/selinux/config文件,如下图,将SELINUX的值设置为disabled,重启系统生效,selinux不再开启。
下面是一些关于selinux相关操作,酌情使用:

临时关闭SELinux 
setenforce 0
临时打开SELinux 
setenforce 1
查看SELinux状态 
getenforce
开机关闭SELinux 

注意
 一旦设置selinux=disabled后,就不能通过setenforce 1命令临时打开。

[root@localhost ~]# setenforce 1
setenforce: SELinux is disabled

如果有不当之处,请留言,互相学习,谢谢!

猜你喜欢

转载自blog.csdn.net/qq_25272679/article/details/80336375