centos7安装pureftp

      我使用的虚拟机是CentOS Linux release 7.6.1810 (Core)操作系统,这个版本的操作系统和vsftp不兼容,会乱码,找了很多办法解决不了,因此选择了pureftp。
1、yum安装pureftp
  默认的 yum 源没有提供 pure-ftpd,需要先安装 epel 扩展源:

yum install epel-release
yum install pure-ftpd

2、修改配置文件
  通过yum的方式安装之后,配置文件的位置是/etc/pure-ftpd/pure-ftpd.conf。
  注意修改以下几项:

MinUID 100    #如果这个数字比较小,就把它调大一点,否则如果建的用户的uid比这个数字小,会报“530 Login authentication failed”错误
AnonymousOnly no    #只允许匿名用户登录。
NoAnonymous yes     #不允许匿名用户登录
ProhibitDotFilesWrite no     #不能删除/写入隐藏文件。如果ftp目录内有隐藏文件的话,改为yes。
ProhibitDotFilesRead no     #禁止读取隐藏文件。如果ftp目录内有隐藏文件的话,改为yes。
PureDB /etc/pure-ftpd/pureftpd.pdb  #用户数据库文件。我建好ftp之后这行配置默认是被注释掉的,所以我登录ftp一直报错“530 Login authentication failed”。因为没有启用用户数据库文件,ftp读取不到用户,所以这行一定要启用

其他的我没有修改,都是默认的。
3、启动pureftp

systemctl start pure-ftpd
systemctl status pure-ftpd     //执行之后,看到绿色的active表明pureftp搭建成功

4、建ftp用户
  我的需求是,建两个用户,一个用户有读写权限,一个用户只有读的权限。pureftp的用户比较特殊,它有一个虚拟用户的概念,虚拟用户是挂靠在真实用户下面的,因此具备和真实用户一样的读写权限。所以我们需要建两个真实linux用户,一个具备读写权限,一个具备读权限。
(1)创建用户组

 groupadd ftpgroup

(2)创建系统用户

useradd user1 -g ftpgroup -d /abc/def -s /sbin/nologin    //可读可写
useradd user2 -g ftpgroup -d /abc/def -s /sbin/nologin      //只读

(3)创建pureftp虚拟用户,并配置好密码

pure-pw useradd randw -u user1 -g ftpgroup -d /abc/def
Password: 
Enter it again: 
pure-pw useradd ronly -u user2 -g ftpgroup -d /abc/def
Password: 
Enter it again: 

(4)修改 FTP 文件夹目录权限

chmod 755 /abc/def

(5)创建用户信息数据库文件,list显示用户列表

pure-pw mkdb
pure-pw list
randw           /abc/def/./ 
ronly           /abc/def/./ 

(6)测试
使用randw登录ftp,登录成功

C:\Users\pku>ftp 202.112.?.?
连接到 202.112.?.?。
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 08:31. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
200 OK, UTF-8 enabled
用户(202.112.183.194:(none)): randw
331 User randw OK. Password required
密码:
230 OK. Current directory is /

使用put命令传输文件

ftp> put E:\test.txt
200 PORT command successful
150 Connecting to port 1038
226 File successfully transferred

使用ronly登录

C:\Users\pku>ftp 202.112.?.?
连接到 202.112.?.?。
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 08:31. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
200 OK, UTF-8 enabled
用户(202.112.183.194:(none)): ronly
331 User ronly OK. Password required
密码:
230 OK. Current directory is /

查看文件

ftp> ls
200 PORT command successful
150 Connecting to port 1854
.
..
1.txt
test.txt
226-Options: -a
226 8 matches total

传输文件

ftp> put E:\2.txt
200 PORT command successful
553 Can't open that file: Permission denied

传输文件就会报错不被允许。

通过简单的测试,可以看出,ftp已经搭建好,并且满足了不同的用户有不同的权限。

你可能感兴趣的:(Linux)