在 CentOS 上“锁定 SFTP 目录”通常指的是:限制 SFTP 用户只能访问指定目录,不能进入上级目录(chroot)。下面按常见场景说明。
useradd -m -s /sbin/nologin sftpuser
passwd sftpuser
mkdir -p /data/sftp/sftpuser
chown root:root /data/sftp
chown sftpuser:sftpuser /data/sftp/sftpuser
⚠️ 注意:
编辑:
vi /etc/ssh/sshd_config
注释或删除:
# Subsystem sftp /usr/libexec/openssh/sftp-server
添加:
Subsystem sftp internal-sftp
Match User sftpuser
ChrootDirectory /data/sftp
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
systemctl restart sshd
✅ 效果:
/data/sftp/、/home 等系统目录groupadd sftpusers
usermod -aG sftpusers sftpuser
sshd_config:
Match Group sftpusers
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
目录结构:
/data/sftp/user1
/data/sftp/user2
chmod 555 /data/sftp/sftpuser
或仅允许上传:
chmod 755 /data/sftp/sftpuser
报错:
fatal: bad ownership or modes for chroot directory
解决:
chown root:root /data/sftp
chmod 755 /data/sftp
因为 chroot 目录不能写,需建子目录:
mkdir /data/sftp/sftpuser/upload
chown sftpuser:sftpuser /data/sftp/sftpuser/upload
sftp sftpuser@localhost
登录后应看到:
sftp> pwd
Remote working directory: /
如果你说的是:
可以告诉我,我给你对应方案。