背景:
购买了阿里云主机,默认镜像(centos)自带了 SSH 和 SFTP。
需求是,通过这个主机的 SFTP,每个用户一个目录,都是互相隔离的。
修改 ssh 配置文件: vim /etc/ssh/sshd_config
# 端口号
Port 22
# 打开 sftp
Subsystem sftp internal-sftp
# 针对 sftp 用户组的设置
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
重启服务:
service sshd restart
创建用户
# 创建用户目录
mkdir /share/sjjh_user
# 创建用户组
groupadd sftp
# 创建用户
useradd -d /share/sjjh_user -s /sbin/nologin sjjh_user
# 床架密码
passwd sjjh_user # 123456
# 把用户加入用户组
usermod -G sftp sjjh_user
进行完上面的操作后,遗留问题是:
1、sjjh_user 没有读写权限,并且,通过 chmod/chown 操作 /share/sjjh_user 后,会报错:sftp client_loop: send disconnect: Broken pipe
2、通过下面的操作创建 upload/download
目录,通过这两个目录中上传下载数据。
cd /share/sjjh_user && mkdir upload download && chown sjjh_user download upload
登陆使用:
sftp -P 22 sjjh_user@111.111.111.111