在一些生产环境中,有时,用户需要传数据到服务器,但是配置 ftp 服务比较麻烦,此时,我们可以为用户创建 sftp 账户,让用户使用 sftp 来上传下载所需的数据。sftp 账号即为系统账号,将账户密码给用户,用户除了能登录 sftp 上传下载数据外,还可以访问系统中的其他目录,由此,给我们的系统带来了安全隐患,我们需要把 sftp 用户限制在特定的目录中。
二、配置
2.1、创建用户
useradd -s /usr/sbin/nologin test1
设置密码
passwd test1
2.2、限制目录
修改/etc/ssh/sshd_config,最后添加如下内容,假设我们限制的操作目录为/home/data/www/www.wzlinux.com/test1。
Match User test1
PasswordAuthentication yes
ChrootDirectory /home/data/www/www.wzlinux.com/test1/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
重启 ssh 服务
systemctl restart sshd
2.3、权限与属主设定
首先目录/home/data/www/www.wzlinux.com 的属主必须是 root,也就是说被限制的目录上一级目录的属主必须是root,属组可以是其他用户,因为我们是提供 web 服务的,所以我们设置为www如下:
chown ro