1、创建sftp组
groupadd sftp
2、创建sftp所用的用户
#用户名sftpuser,创建用户到用户组,并禁止登录 useradd -g sftp -s /bin/false sftpuser -d /data/sftpuser #修改密码 passwd sftpuser
3、修改ssh配置
vim /etc/ssh/sshd_config
a. 注释Subsystem sftp /usr/libexec/openssh/sftp-server(若不注释,可以通过"cd / "看到系统所有文件)
b. 在文件末尾添加以下配置
# sftp Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /data/sftpuser ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
> Match Group sftp :匹配sftp组的用户,如果有多个组,用逗号分隔。也可以使用"Match User mysftp"匹配用户,多个用户之间也是用逗号分隔。
> ChrootDirectory /data/sftpuser :将用户的根目录指定到/data/sftpuser
> ForceCommand internal-sftp :指定sftp命令。
> X11Forwarding no :是否允许用户可以使用端口转发。
4、修改用户的根目录,让它属于root
chown root:sftp /data/sftpuser chmod 755 /data/sftpuser
5、创建sftpuser用户可写入的目录,并授权
// 由于sshd_config配置中指定了根目录,根目录无法写入,因此要创建一个用于上传文件的目录。
// 目录所有者为sftpuser,有写入权限;所有组为sftp,无写入权限。
mkdir /data/sftpuser/sftpdata chown sftpuser:sftp /data/sftpuser/sftpdata chmod 755 /data/sftpuser/sftpdata
如果需要多个目录,可以接着创建,然后赋予同样的权限即可,如:
mkdir /data/sftpuser/sftpdata123 chown sftpuser:sftp /data/sftpuser/sftpdata123 chmod 755 /data/sftpuser/sftpdata123
6、关闭selinux、firewallid
略...
7、重启sshd服务
systemctl restart sshd
8、测试
#连接,然后输入命令即可 sftp [email protected]
标签:sftpuser,部署,用户,sftp,Linux,根目录,SFTP,data,sshd From: https://www.cnblogs.com/weiyiming007/p/17137750.html