ftp

一 使用vsftpd搭建FTP服务

CentOS或者Red Hat Linux 上有自带的FTP软件vsftpd,默认并没有安装,需要用yum安装,安装后不用配置,启动后便可以使用

二 安装vsftpd

使用yum工具安装vsftpd包

# yum install -y vsftpd db4-utils

三 建立账号

vsftpd默认可以支持使用系统账号体系登录,但那样不太安全,所以建议使用虚拟账号体系登录

首先建立与虚拟机账号相关联的系统账号:

# useradd virftp -s /sbin/nologin

接着建立与虚拟账户相关的文件:

# vim /etc/vsftpd/vsftpd_login           //内容如下:

test1

123456

test2

abcdef

(该文件的奇数行为用户名,偶数行为上一行的用户密码)

然后更改该文件的权限,提升安全级别:

#chmod 600 /etc/vsftpd/vsftpd_login

vsftpd使用的密码文件不是明文的,需要生产对应的库文件,如下:

# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

最后建立与虚拟账号相关的目录以及配置文件:

# mkdir /etc/vsftpd/vsftpd_user_conf

# cd /etc/vsftpd/vsftpd_user_conf

四 创建和用户对应的配置文件

用户的配置文件是单独存在的,每一个用户都有一个自己的配置文件,文件名和用户名一致,如下:

# vim test1     //如下:

local_root=/home/virftp/test1

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_uoload_enable=NO

anon_mkdir_write_enable=NO

idle_connection_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=50000

该配置文件内容可在https://coding.net/u/aminglinux/p/aminglinux-book/git/tree/master/D18Z获取。其中,local_root为test1账号的家目录,anonymous_enable用来限制是否允许匿名账号登录(若为NO,表示不允许匿名账号登录),write_enable=YES表示可写,local_umask值,anon_upload_enable表示是否允许匿名账号上传文件,anon_mkdir_write_enable表示是否允许匿名账号可写。以上为关键配置参数,其他参数暂时不用关心。

创建test2账号的步骤和test1一样:

# mkdir /home/virftp/test1

# touch /home/virftp/test1/aminglinux.txt

# chown -R virftp:virftp /home/virftp

# vim /etc/pam.d/vsftpd             //在最开头添加两行

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd-login

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

CentOS 7为64位系统,所以库文件路径为、lib64/security/pam_userdb.so(32位系统的库文件路径为/lib/security/pam_userdb.so)

五 修改全局配置文件/etc/vsftpd/vsftpd.conf

修改用户的配置文件后还不可用,还需要修改vsftpd的一些全局配置文件

首先编辑vsftpd.conf文件:

# vim 、etc/vsftpd/vsftpd.conf

修改如下内容:

将anonymous_enable=YES改为anonymous_enable=NO;

将#anon_upload_enable=YES改为anon_upload_enable=NO;

将#anon_mkdir_write_enable=YES改为anon_mkdir_write_enable=NO.

再增加如下内容:

chroot_local_user=YES

guest_enable=YES

guest_username=virftp

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf

allow_writeable_chroot=YES

该部分内容可以在https://coding.net/u/aminglinux/p/aminglinux-book/git/tree/master/D18Z获取,然后启动vsftpd服务,执行如下命令:

# systemctl start vsftpd

# ps aux |grep vsftp     //查看进程是否存在

# yum install lftp           //安装lftp客户端软件

# lftp test1@127.0.0.1

 

上一篇:Windows MinGW cmake 安装编译Opencv 3.4.3 C++开发环境


下一篇:vs2017 开发 C++ 操作mysql的动态库