配置FTP服务
目录
1.使用vsftpd搭建FTP服务
1.1 安装vsftpd
1.2 建立虚拟账号
1.3 创建和用户对应的配置文件
1.4 修改全局配置文件/etc/vsftpd/vsftpd.conf
2.安装配置pure-ftpd
2.1 安装
2.2 pure
2.3 建立账号
1.使用vsftpd搭建FTP服务
# yum install -y vsftpd db4-utils
db4-utils用来生成密码库文件
1.2 建立虚拟账号
//建立与虚拟账号相关联的系统账号
# useradd virftp -s /sbin/nologin
# vim /etc/vsftpd/vsftpd_login
test1
123456
test2
123123
奇数行为用户名,偶数行为上一行的用户密码
# chmod 600 /etc/vsftpd/vsftpd_login
# 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
1.3 创建和用户对应的配置文件
用户的配置文件是单独存在的,每个用户都有自己的配置文件,文件名和用户名一直。
# vim test1
local_root=/home/virftp/test1 //家目录
anonymous_enable=NO //不允许匿名登录
write_enable=YES //可写
local_umask=022 //指定umask值
anon_upload_enable=NO //不允许匿名上传
anon_mkdir_write_enable=NO //不允许匿名可写
//以上为关键配置参数,下面暂不用关心
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
创建test2账号方法一样,如下所示:
# mkdir /home/virftp/test1
# touch /home/virftp/test1/aminglinux.txt
# chown -R virftp:virftp /home/virftp
# vim /etc/pam.d/vsftpd //在最开头添加两行
auth sufficent /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
1.4 修改全局配置文件/etc/vsftpd/vsftpd.conf
# vim /etc/vsftpd/vsftpd.conf
//修改其中三行改为NO
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
//增加
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
# systemctl start vsftpd
# ps aux |grep vsftp
# yum install lftp
# lftp test@127.0.0.1
口令:
lftp test1@127.0.0.1:~> ls
... 1009 1009 ... aminglinux.txt
1009为用户的uid和gid,有问题检查/var/log/secure日志
2.安装配置pure-ftpd
pure-ftpd为另一款小巧实用的FTP软件。
2.1 安装
# yum install -y epel-release //默认centos yum源并不包含pure-ftpd,需要安装epel扩展源
# yum install -y pure-ftpd
2.2 pure
# vim /etc/pure-ftpd/pure-ftpd.conf //改
PureDB /etc/pure-ftpd/pureftpd.pdb //去掉前面的#号
# systemctl stop vsftpd
# systemctl start pure-ftpd //
# ps aux |grep pure-ftp
若没有正常启动看/var/log/messages
2.3 建立账号
pure-ftpd使用的账号并非Linux的系统账号,而是虚拟账号。
# mkdir /data/ftp/
# useradd -u 1010 pure-ftp //-u 指定用户的id
# chown -R pure-ftp:pure-ftp /data/ftp
# pure-pw useradd ftp_user1 -u pure-ftp -d /data/ftp/
Password:
Enter it again:
-u:将虚拟用户ftp_user1与系统用户pure-ftp关联在一起,即使用ftp_user1账号登录FTP后,会以pure-ftp的身份来读取和下载文件。
-d:选项后面的目录为ftp_user1用户的家目录,是ftp_user1只能访问其家目录/data/ftp/。
创建用户信息数据库文件
# pure-pw mkdb
继续创建账号
# pure-pw useradd ftp_user2 -u pure-ftp -d /tmp
# pure-pw mkdb
列出当前账号
# pure-pw list
ftp_user1 /data/ftp/ ./
ftp_user2 /tmp/ ./
2.4 测试 pure-ftpd
# lftp ftp_user1@127.0.0.1
口令:
lftp ftp_user1@127.0.0.1:~> ls
drwxr-xr-x 2 1010 pure-ftp 6 Apr 2 22:33 .
drwxr-xr-x 2 1010 pure-ftp 6 Apr 2 22:33 ..
lftp ftp_user1@127.0.0.1:~> put /etc/fstab
lftp ftp_user1@127.0.0.1:~> ls
drwxr-xr-x 2 1010 pure-ftp 19 Apr 2 22:41 .
drwxr-xr-x 2 1010 pure-ftp 19 Apr 2 22:41 ..
-rw-r--r-- 1 1010 pure-ftp 574 Feb 20 21:38 fstab
Windows可以安装一个FTP客户端软件(开源FileZilla)
配置若有遗漏或错误,请评论留言。