现要建一个 sftp 服务器,其要求为:
- sftp 登录后自动跳转到
/sftp/$USER/upload 目录,直接上传
- 对应用户 sftp 登录到对应用户目录,不能访问其他用户目录
为实现上述需求,方案如下:
创建用户和组
以创建一个用户组 sftpgrp,以及两个用户 sftp1、 sftp2 为例:
1
2
3
4
5
| groupadd sftpgrp
adduser sftp1 -G sftpgrp
adduser sftp2 -G sftpgrp
passwd sftp1
passwd sftp2
|
创建目录
创建相应用户目录,并设置权限
1
2
3
4
| mkdir -p /sftp/sftp{1..2}/upload
chown -R sftp1:sftp1 /sftp/sftp1
chown -R sftp2:sftp2 /sftp/sftp2
chmod -R 770 /sftp/sftp{1..2}
|
修改配置
编辑 /etc/ssh/sshd_config 文件,注释掉自带的 Subsystem sftp /usr/libexec/openssh/sftp-server 这行,添加以下内容:
1
2
3
| Subsystem sftp internal-sftp -d %u/upload
Match Group sftpgrp
ChrootDirectory /sftp
|
最后重启 sshd 即可。
1
| systemctl restart sshd.service
|
Author
winsphinx
LastMod
2024-09-11
(699cfd2b)
[原创] sftp
License
