Fork me on GitHub

在离网的 linux 上安装 ftpserver,并创建客户端账号

下载vsftp 和 lftp

vsftpd(Very Secure FTP Daemon)是 RHEL 7.9 上常用的 FTP 服务器,lftp 本身是一个命令行 FTP/SFTP 客户端工具,通常用于文件传输。

已知我的环境是rhel7.9,而且是离线安装,先下载服务端和客户端
vsftpd-3.0.2-28.el7.x86_64.rpm
lftp-4.4.8-12.el7_8.1.x86_64.rpm

安装 vsftp 和 lftp

直接 yum localinstall 即可,没有额外的依赖

1
2
3
4
5
// 查看版本
vsftp -version

// 手动运行,之后查看进程即可
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

配置 vsftpd 服务持续运行

1
2
3
4
// 启动 vsftpd 服务:
systemctl start vsftpd
// 设置开机自启:
systemctl enable vsftpd

应该会报错,这是因为还没有配置 /etc/vsftpd/vsftpd.conf ,但不要急,可以先把账号等先创建好再说

创建客户端账号/密码

说明:

  1. /home/swyhzhbs/data/files是计划分配给 ftp 的文件目录.
  2. swyhzhbs是该目录本身的所有者。
  3. szftp/XXX 是我打算创建的客户端账号密码.
1
2
3
useradd -m -d /home/swyhzhbs/data/files -s /bin/bash szftp
passwd szftp
输入密码两次 XXX

创建共享用户组,并赋予文件权限

使用用户组来管理 ftp 的文件目录权限,如果没设置好,lftp 测试时会报错:500 OOPS: cannot change directory:/home/swyhzhbs/data/files

1
2
3
4
5
6
7
8
9
10
groupadd ftp_shared
usermod -a -G ftp_shared swyhzhbs
usermod -a -G ftp_shared szftp

// 设置目标目录权限
chown swyhzhbs:ftp_shared /home/swyhzhbs/ /home/swyhzhbs/data/ /home/swyhzhbs/data/files
chmod 770 /home/swyhzhbs/ /home/swyhzhbs/data/
chmod 775 /home/swyhzhbs/data/files
// 确保新文件继承组权限
chmod g+s /home/swyhzhbs/data/files

修改配置,重新执行配置服务

vi /etc/vsftpd/vsftpd.conf
修改:anonymous_enable=NO

1
2
systemctl start vsftpd
systemctl enable vsftpd

验证:

1
2
lftp -u szftp,XXX localhost
ls
-------------The End-------------