人们不是嘲笑你的梦想
他们嘲笑的是你的实力

Linux添加sftp用户并限制只能访问某个目录

创建用户

新建一个用户

useradd sftpuser

设置密码

passwd sftpuser

设置配置文件

先备份一下

cp sshd_config sshd_config.back

注意这里的文件名是 sshd_config 不是 ssh_config

nano /etc/ssh/sshd_config

注释这一行,不然跟底下添加的冲突

#Subsystem      sftp    /usr/libexec/openssh/sftp-server 

然后新指定sftp类型为系统自带的 internal-sftp

Subsystem sftp internal-sftp

然后我们新增一个用户的设置

#这行用来匹配用户
Match User sftpuser
#用 chroot 将用户的根目录指定到 /home/sftp,这样用户就只能在 /home/sftp 下活动
     ChrootDirectory /home/sftp
     ForceCommand internal-sftp
     X11Forwarding no
     AllowTcpForwarding no

赋权

注:必须用 root 账户进行赋权,不用 root 用户赋权 sftp 登陆不上

chown root.root /home/sftp /home/sftp/sftpuser

chmod 755 /home/sftp /home/sftp/sftpuser

给用户创建上传下载的文件夹

上面操作完sftp用户就可以登陆了

sftp -P remote_port user_name@remote_server_address[:path]

但是我们会发现不能上传,需要我们新建一个有上传权限的子目录

cd /home/sftp/sftpuser

mkdir {upload,download}

chmod a+w upload -R upload

其中,upload目录为可读写权限,sftp用户可以上传

download目录就只有读权限,可以下载但是不能上传

重启

systemctl restart sshd
未经允许不得转载:四四的军火库 » Linux添加sftp用户并限制只能访问某个目录