【Linux服务器】-安装ftp与sftp服务

【Linux服务器】-安装ftp与sftp服务

FTP安装:

1. 安装vsftpd

下载安装vsftpd

复制代码
yum install vsftpd

启动vsftpd

复制代码
systemctl start vsftpd
systemctl enable vsftpd

2. 配置vsftpd

创建用户并修改密码

复制代码
useradd ftpuser
id ftpuser
echo "123$%^789" | passwd ftpuser --stdin

配置用户权限和访问位置

vim /etc/vsftpd/vsftpd.conf

复制代码
chroot_local_user=YES
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
local_root=/data/ftp/python

创建chroot_list名单

vim /etc/vsftpd/chroot_list

创建/data/ftp/python目录并赋权

复制代码
mkdir -p /data/ftp/python
chmod 777 /data/ftp/python

重启vsftpd

复制代码
systemctl restart vsftpd
systemctl status vsftpd

3.验证ftp


SFTP安装:

1. 修改配置项

vim /etc/ssh/sshd_config

确保以下配置在且未被注释掉

复制代码
Subsystem sftp /usr/lib/openssh/sftp-server
复制代码
Match Group sftpusers
    ChrootDirectory /home/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no


ChrootDirectory /home/%u

将用户的根目录(chroot)限制在其自身的家目录(/home/用户名)中。

%u 是一个占位符,会自动替换为当前登录的用户名,确保每个用户只能访问自己的家目录,无法切换到系统其他目录(如 /etc、/usr 等),增强安全性。
ForceCommand internal-sftp

强制该用户组的用户只能使用 SSH 内置的 internal-sftp 服务,禁止执行普通的 SSH shell 登录(如通过 ssh 命令进入终端)。

确保用户仅能进行文件传输操作,无法执行系统命令。
AllowTcpForwarding no

禁用 TCP 端口转发功能,防止用户通过 SFTP 隧道绕过限制访问其他服务,进一步限制网络操作权限。
X11Forwarding no

禁用 X11 图形转发功能,由于该用户组仅允许 SFTP,无需图形界面相关功能,关闭后减少潜在安全风险。

创建用户并修改密码

复制代码
groupadd sftpusers
useradd -m -s /bin/false -g sftpusers sftpuser
echo "123$%^789" | passwd sftpuser --stdin


useradd

Linux 系统中用于创建新用户的命令(部分系统可能使用 adduser,功能类似)。
-m

自动创建用户的家目录(通常为 /home/sftpuser),并复制 /etc/skel 目录下的默认配置文件(如 .bashrc、.profile 等)。
-s /bin/false

设置用户的登录 shell 为 /bin/false(或 /sbin/nologin),这是一个特殊的 shell,当用户尝试直接登录时会立即退出,从而禁止 SSH 交互式登录。

但该用户仍可通过 SFTP 访问,因为 SFTP 不需要交互式 shell。
-g sftpusers

将用户添加到 sftpusers 用户组,该组应已在 SSH 配置中被限制为仅能使用 SFTP(参考你之前提供的 Match Group sftpusers 配置)。
sftpuser

指定用户名,可根据需要替换为实际名称(如 upload_user、client1 等)。

配置文件目录

复制代码
mkdir -p /home/sftpuser
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
复制代码
mkdir -p /home/sftpuser/upload
chown sftpuser:sftpusers /home/sftpuser/upload

2. 重启ssh服务

复制代码
systemctl restart sshd

3. 验证访问



相关推荐
骑上单车去旅行4 小时前
MD5校验对比脚本
linux·服务器·windows
平生幻5 小时前
Linux 常用命令
linux
期待着20135 小时前
docker 安装 ,在centos7.9
运维·docker·容器
踏月的造梦星球5 小时前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
MXsoft6185 小时前
平台化是智能运维发展的必然趋势吗?
运维
ShirleyWang0126 小时前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s
liuccn6 小时前
Linux 存储系统:LVM 与直接分区
linux·运维
捷配链6 小时前
六层服务器板行业材料与工艺标准化选型指南
服务器·制造·pcb
xexpertS8 小时前
CI/CD 熔断机制:如何通过编排级熔断器提升开发者效率
java·linux·运维
xuefeiniao8 小时前
CentOS + 宝塔服务器偶发 SSH、面板、网站全部无法访问排查记录(PHP-FPM 内存耗尽案例)
服务器·centos·ssh·php