
Kylin V10 SP1 安装ftp服务器+客户端
Kylin V10 SP1 安装ftp服务器+客户端
由于业务需求,本文以离线方式安装ftp服务器和客户端并完成记录
安装
离线安装
参考Linux本地下载软件包并离线安装
在线安装
如果不需要离线安装,则使用命令
apt-get install vsftpd
apt-get install ftp
安装完成后,笔者的机器在/etc
目录生成了ftp配置文件,也有可能在/etc/vsftpd
目录下。
配置 & 启动
修改配置文件/etc/vsftpd.conf
囫囵吞枣版
# 如果存在则只需要去掉注释,如果不存在则追加
listen=NO
listen_ipv6=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
enonymous_enable=NO
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
tcp_wrappers=YES
local_root=/home/testuser # 本地ftp用户目录,在之后的步骤会创建
allow_writeable_chroot=YES
write_enable=YES # 允许写操作
local_umask=022 # 设置本地文件上传时的权限掩码
anon_upload_enable=NO # 禁止匿名用户上传文件
打破沙锅版
# 如果存在则只需要去掉注释,如果不存在则追加
# 当设置为 NO 时,vsftpd 将不会监听 IPv4 地址的 FTP 连接,而是默认使用 IPv6 地址。
# 若设置为 YES,则表示监听 IPv4 地址。此项与 listen_ipv6 配合使用。
listen=NO
# 当设置为 YES 时,vsftpd 会监听所有 IPv6 地址。
# 如果你的服务器只使用 IPv6 地址,这项设置是必需的。设置为 NO 则禁用 IPv6。
listen_ipv6=YES
# 启用后,本地用户(非匿名用户)将被限制在其home目录内,
# 无法访问home目录外的任何目录。常用于提升安全性。
chroot_local_user=YES
# 启用后,`chroot_list_file` 中列出的用户将不受 `chroot_local_user` 的限制,
# 即可以访问其home目录之外的目录。
chroot_list_enable=YES
# 该文件列出了不受 `chroot_local_user` 限制的用户。
# 用户列表中的用户将被允许访问其home目录以外的目录。
chroot_list_file=/etc/vsftpd/chroot_list
# 该选项控制是否允许匿名用户访问 FTP 服务。
# 设置为 NO 时,禁止匿名用户访问;设置为 YES 时,允许匿名用户访问。
enonymous_enable=NO
# 指定使用的 PAM 服务名称,用于身份验证。通常情况下保持默认设置即可。
pam_service_name=vsftpd
# 启用此选项时,`userlist_file` 中列出的用户会被控制。
# 如果 `userlist_deny=YES`,则列出的用户无法访问 FTP 服务;如果 `userlist_deny=NO`,则只有列出的用户可以访问 FTP 服务。
userlist_enable=YES
# 配合 `userlist_enable=YES` 使用。
# 设置为 YES,则 `userlist_file` 中列出的用户会被拒绝访问 FTP 服务;
# 设置为 NO,则只有 `userlist_file` 中列出的用户能够访问 FTP 服务。
userlist_deny=YES
# 启用 TCP Wrappers 功能,允许通过 `/etc/hosts.allow` 和 `/etc/hosts.deny` 文件对 FTP 服务的访问进行控制。
# 设置为 YES 时,启用基于主机的访问控制。
tcp_wrappers=YES
# 设置本地ftp用户的根目录,用户登录时将进入该目录。这个目录通常是用户的home目录。
# 如果配置了 `chroot_local_user=YES`,用户将只能在此目录下操作。
local_root=/home/testuser
# 启用此选项后,允许本地用户在启用了 `chroot_local_user=YES` 的情况下拥有可写权限的home目录。
# 如果未启用该选项,将无法在home目录内执行写操作,除非目录具有额外的权限。
allow_writeable_chroot=YES
# 启用此选项后,允许本地用户(和匿名用户,具体取决于其他设置)进行文件写入操作。
# 设置为 YES 时,FTP 用户可以上传文件、修改文件、删除文件等。
# 通常需要配合 `local_root` 和 `anon_upload_enable` 配置项来决定哪些用户可以进行写操作。
write_enable=YES
# 设置本地用户上传文件时的文件权限掩码。常见的 `umask` 设置:
# 022 - 文件权限为 `644`,目录权限为 `755`(标准设置)。
# 027 - 文件权限为 `640`,目录权限为 `750`。
# 002 - 文件权限为 `664`,目录权限为 `775`。
local_umask=022
# 控制匿名用户是否可以上传文件。设置为 YES 时,允许匿名用户上传文件;设置为 NO 时,禁止匿名用户上传文件。
# 通常,如果不希望允许匿名上传,应该设置为 NO。
anon_upload_enable=NO
创建测试用户
命令行创建用户和设置密码
useradd testuser
passwd testuser
> 输入密码...
在Linux下,ftp用户通常与系统用户绑定。
创建用户目录并授权
mkdir -p /home/testuser
chown -R testuser:testuser /home/testuser
创建允许访问的用户名单,加入前面创建的用户
vim /etc/vsftpd.chroot_list
启动
# 启动
systemctl start vsftpd
# 重启,每次修改配置文件后都需要
systemctl restart vsftpd
# 停止
systemctl stop vsftpd
# 查看状态
systemctl status vsftpd
# 查看端口状态(默认端口21)
lsof -i :21
尝试登录
在文件资源管理器文件地址栏输入ftp://ip地址
,也可以在终端输入(需要安装ftp客户端)ftp ip地址
,使用刚刚创建的testuser登录。
终端登录成功后,测试上传下载
put /home/test.txt test.txt
get test.txt /home/root/test.txt
Debug
553 Could not create file.
550 Permission denied.
530 Permission denied.
-
检查
/etc/vsftpd.chroot_list
是否加入了用户名 -
检查用户目录
/home/testuser
或目标目录/home/testuser/data
的权限
500 OOPS: could not read chroot() list file:/etc/vsftpd.chroot_list
500 OOPS: cannot read user list file:/etc/vsftpd.user_list
- 检查文件是否创建
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Dominic
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果