linux账号目录权限限制,Linux 限制SFTP用户目录和权限

一、背景

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

需求:

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

二、配置

2.1、创建用户

groupadd sftp

useradd -g sftp -s /bin/false wzlinux

设置密码

passwd wzlinux

2.2、限制目录

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

Match User wzlinux

PasswordAuthentication yes

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

AllowTcpForwarding no

X11Forwarding no

ForceCommand internal-sftp

重启 ssh 服务

systemctl restart sshd

2.3、权限与属主设定

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

chown root.root /home/data/www/

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

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

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

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

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

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也赋予写入权限呢? 我还没有解决。

2.5、虚拟主机用户 ftp 和apache 用户文件互操作权限

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值