欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux+sftp限制目录,Linux 限制SFTP用户目录和权限 有大用

1、背景

在一些生产环境中,有时,用户须要传数据到服务器,可是配置 ftp 服务比较麻烦,此时,咱们能够为用户建立 sftp 帐户,让用户使用 sftp 来上传下载所需的数据。sftp 帐号即为系统帐号,将帐户密码给用户,用户除了能登陆 sftp 上传下载数据外,还能够访问系统中的其余目录,由此,给咱们的系统带来了安全隐患,咱们须要把 sftp 用户限制在特定的目录中。linux

需求:

SFTP 用户 wzlinux 须要对 /home/data/www/www.wzlinux.com 拥有读写权限,而且只限制在此目录操做。apache

2、配置

2.一、建立用户

groupadd sftp

useradd -g sftp -s /bin/false wzlinux

设置密码安全

passwd wzlinux

2.二、限制目录

修改/etc/ssh/sshd_config,最后添加以下内容,咱们限制的操做目录为/home/data/www/www.wzlinux.com/。bash

Match User wzlinux

PasswordAuthentication yes

ChrootDirectory /home/data/www/www.wzlinux.com

AllowTcpForwarding no

X11Forwarding no

ForceCommand internal-sftp

重启 ssh 服务服务器

systemctl restart sshd

2.三、权限与属主设定

首先目录/home/data/www/的属主必须是 root,也就是说被限制的目录上一级目录的属主必须是root,属组能够是其余用户。ssh

chown root.root /home/data/www/

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

chmod 755 /home/data/www/www.wzlinux.com

2.四、设置用户上传文件权限

通过上面的设置后用户可正常浏览下载目录中的文件,可是用户没法上传文件,由于目录www.wzlinux.com的属主是root,其余用户没有写入权限,并且目录的最高权限是 755。ide

若是须要有写入的权限,咱们须要在目录www.wzlinux.com下面再建立目录,而后赋予目录用户的属主属组权限。rest

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

chown wzlinux.sftp /home/data/www/www.wzlinux.com/upload

由此咱们能够得到对目录upload的上传权限,可是对www.wzlinux.com的目录是没有写入权限的,那如何给www.wzlinux.com也赋予写入权限呢? 我尚未解决。code

2.五、虚拟主机用户 ftp 和apache 用户文件互操做权限

给予两个用户 acl 的权限,同时给予,并设定为默认权限,好比sftp的用户是 wzlinux,apache 的用户是 www,文件目录是 /home/data/www/www.wzlinux.com 。it

setfacl -d -m u:wzlinux:rwx -R /home/data/www/www.wzlinux.com

setfacl -d -m u:www:rwx -R /home/data/www/www.wzlinux.com

欢迎你们扫码关注,获取更多信息

来自 https://codeantenna.com/a/kypGOGI4kK


普通分类: