1.使用vsftpd搭建ftp服务器
①yum安装vsftpd
[root@test_01 ~]# yum install -y vsftpd
②为保证安全性,添加虚拟用户virftp,并且使该用户无法登录系统
[root@test_01 ~]# useradd -s /sbin/nologin virftp
③编辑虚拟用户的密码文件/etc/vsftpd/vsftpd_login,并在文件中写入用户和密码(奇数行用户名,偶数行密码)
[root@test_01 ~]# vim /etc/vsftpd/vsftpd_logintestuser11234567890testuser20987654321
④修改文件权限,root用户可读可写
[root@test_01 ~]# chmod 600 /etc/vsftpd/vsftpd_login
⑤将文本形式的密码文件转换为计算机可识别的二进制文件
[root@test_01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db[root@test_01 ~]# ls /etc/vsftpd/ftpusers vsftpd.conf vsftpd_loginuser_list vsftpd_conf_migrate.sh vsftpd_login.db
⑥创建虚拟用户的配置文件目录
[root@test_01 ~]# mkdir /etc/vsftpd/vsftpd_user_conf[root@test_01 ~]# cd /etc/vsftpd/vsftpd_user_conf[root@test_01 vsftpd_user_conf]#
⑦创建虚拟用户配置文件,并将如下配置写入文件中
[root@test_01 vsftpd_user_conf]# vim testuser1local_root=/home/virftp/testuser1anonymous_enable=NOwrite_enable=YESlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOidle_session_timeout=600data_connection_timeout=120max_clients=10
配置信息详解:
local_root=/home/virftp/testuser1 ⇒ 定义x虚拟用户的家目录,用于文件传输
anonymous_enable=NO ⇒ 是否允许匿名用户
write_enable=YES ⇒ 是否可写
local_umask=022 ⇒ 用于定义创建的新文件&目录时的权限
anon_upload_enable=NO ⇒ 是否允许匿名用户上传
anon_mkdir_write_enable=NO ⇒ 是否允许匿名用户创建文件夹,是否可写
idle_session_timeout=600 ⇒ 超时登录时间限制
data_connection_timeout=120 ⇒ 数据传输的超时时间
max_clients=10 ⇒ 最大的客户端数目
⑧构建虚拟用户的家目录
[root@test_01 vsftpd_user_conf]# touch /home/virftp/testuser1/test.txt[root@test_01 vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
⑨定义密码文件信息
[root@test_01 vsftpd_user_conf]# vim /etc/pam.d/vsftpdauth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_loginaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login#%PAM-1.0session optional pam_keyinit.so force revokeauth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeedauth required pam_shells.soauth include password-authaccount include password-authsession required pam_loginuid.sosession include password-auth
⑩编辑vsftpd的主配置文件,修改以下部分信息
将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=YESguest_enable=YESguest_username=virftpvirtual_use_local_privs=YESuser_config_dir=/etc/vsftpd/vsftpd_user_confallow_writeable_chroot=YES
⑪启动vdftpd服务,查看服务状态
[root@test_01 vsftpd_user_conf]# systemctl start vsftpd[root@test_01 vsftpd_user_conf]# ps aux | grep vsftpdroot 3986 0.0 0.0 53216 572 ? Ss 17:34 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.confroot 3988 0.0 0.0 112680 972 pts/0 S+ 17:34 0:00 grep --color=auto vsftpd
⑫在客户端安装lftp客户端后,使用lftp登录测试
[root@test_02 ~]# lftp testuser1@192.168.231.128口令:lftp testuser1@192.168.231.128:~> ls-rw-r--r-- 1 1022 1022 0 Jan 18 09:17 test.txtlftp testuser1@192.168.231.128:/>
2.使用pure-ftpd搭建ftp服务
①yum安装pure-ftpd
[root@test_02 ~]# yum install -y pure-ftpd
②编辑配置文件/etc/pure-ftpd/pure-ftpd.conf
将包含密码配置文件/etc/pure-ftpd/pureftpd.pdb的这一行取消注释
PureDB /etc/pure-ftpd/pureftpd.pdb
③启动pure-ftpd服务
[root@test_02 ~]# systemctl start pure-ftpd
④创建测试目录以及测试用户
[root@test_02 ~]# useradd -u 1020 pure-ftp[root@test_02 ~]# mkdir /data/ftp[root@test_02 ~]# chown -R pure-ftp:pure-ftp /data/ftp
⑤创建ftp虚拟用户,并指定用户家目录
[root@test_02 ~]# pure-pw useradd ftp_usera -u pure-ftp -d /data/ftpPassword:Enter it again:[root@test_02 ~]# pure-pw mkdb
⑥测试
[root@test_02 ~]# touch /data/ftp//test.txt[root@test_02 ~]# lnft ftp_usera@127.0.0.1-bash: lnft: 未找到命令[root@test_02 ~]# lftp ftp_usera@127.0.0.1口令:lftp ftp_usera@127.0.0.1:~> lsdrwxr-xr-x 2 1020 pure-ftp 22 Jan 18 18:33 .drwxr-xr-x 2 1020 pure-ftp 22 Jan 18 18:33 ..-rw-r--r-- 1 0 0 0 Jan 18 18:33 test.txtlftp ftp_usera@127.0.0.1:/>