Linux 限制SFTP用户目录和权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 限制SFTP用户目录和权限相关的知识,希望对你有一定的参考价值。

一、背景

在一些生产环境中,有时,用户需要传数据到服务器,但是配置 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 root.www /home/data/www/www.wzlinux.com
chmod 755 /home/data/www/www.wzlinux.com

设置限定目录test1的属主和权限。

chown root.www /home/data/www/www.wzlinux.com/test1

2.4、设置用户上传文件权限

经过上面的设置后用户可正常浏览下载目录中的文件,但是用户无法上传文件,因为目录test1的属主是root,其他用户没有写入权限,而且目录的最高权限是 755。

如果需要有写入的权限,我们需要在目录 test1 下面再创建目录,然后赋予目录用户的属主属组权限。

mkdir /home/data/www/www.wzlinux.com/test1/upload
chown test1.test1 /home/data/www/www.wzlinux.com/test1/upload

由此我们可以获得对目录 upload 的上传权限,但是对 test1 的目录是没有写入权限的,那如何给 test1 也赋予写入权限呢?

欢迎大家扫码关注,获取更多信息

技术图片

以上是关于Linux 限制SFTP用户目录和权限的主要内容,如果未能解决你的问题,请参考以下文章

Linux设置SFTP服务用户目录权限

Linux下限制用户通过SFTP访问指定目录

Linux设置SFTP服务用户目录权限

linux下ssh/sftp配置和权限设置

centos下配置sftp且限制用户访问目录

SFTP限制目录和端口