在 Debian 上配置 SFTP 权限,通常分为几种场景:
sudo groupadd sftpusers
sudo useradd -m -g sftpusers -s /usr/sbin/nologin sftpuser
sudo passwd sftpuser
sudo mkdir -p /srv/sftp/sftpuser
sudo chown root:root /srv/sftp
sudo chown root:root /srv/sftp/sftpuser
sudo chmod 755 /srv/sftp/sftpuser
⚠️ Chroot 目录 必须属于 root,且其他用户不可写
sudo mkdir /srv/sftp/sftpuser/upload
sudo chown sftpuser:sftpusers /srv/sftp/sftpuser/upload
编辑:
sudo nano /etc/ssh/sshd_config
注释掉或确保:
# Subsystem sftp /usr/lib/openssh/sftp-server
添加:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /srv/sftp/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
sudo systemctl restart ssh
如果用户有 shell:
useradd -m username
直接:
sftp username@server
默认家目录 /home/username
sudo apt install acl
setfacl -R -m u:sftpuser:rwx /data/share
查看日志:
sudo journalctl -u ssh
sftp -P 2222 user@host
/srv/sftp/
└── user1/
├── upload/ (可写)
└── download/ (只读)
如果你有 具体需求(如多个用户共享目录、只读、Web 服务器联动),可以告诉我,我给你定制配置。