Sftp多用户 多目录不同权限配置

2024-02-27 128 0

https://www.cnblogs.com/wuchangsoft/p/16050285.html
OS: Centos7
显示路径为/

useradd
- -g 用户组
- -d 指定家目录
- -s shell指定
- -M 不创建家目录
groupadd sftp
useradd -g sftp -s /sbin/nologin -M bytedance
useradd -g sftp -s /sbin/nologin -M huawei

mkdir -p /home/sftp/bytedance/{upload,reporting}
mkdir -p /home/sftp/huawei/KDM

# ChrootDirectory 上级必须是root,权限最大为755
chown -R root.root /home/sftp/bytedance
chown -R root.root /home/sftp/huawei
chmod 755 /home/sftp/huawei
chmod 755 /home/sftp/bytedance

# 目录权限最小化
chown bytedance.sftp /home/sftp/bytedance/{upload,reporting}
chown huawei.sftp /home/sftp/huawei/KDM
vim /etc/ssh/sshd_config

# Subsystem sftp    /usr/libexec/openssh/sftp-server 注释此行
Subsystem sftp internal-sftp 

# 将以下配置放最后行,以免有其他干扰到
#Match Group sftp   支持Group组控制
Match User bytedance,huawei
    ChrootDirectory /home/sftp/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

#Match User huawei
#   ChrootDirectory /home/sftp/huawei
#   X11Forwarding no
#   AllowTcpForwarding no
#   ForceCommand internal-sftp

检查并重启sshd服务

sshd -t
systemctl restart sshd

错误解决

sshd -t
/etc/ssh/sshd_config line 105: Directive 'UsePAM' is not allowed within a Match block
# 将Match User ...等配置放在最后的行

注意事项

ChrootDirectory 设置的目录权限及其所有的上级文件夹权限,属主和属组必须是 root;
只有属主能拥有写权限,权限最大设置只能是 755。

# 匹配 sftp 用户组
Match Group sftp 
# 匹配用户
Match user userA,userB 
# 设定属于用户组 sftp 的用户访问的根文件夹。%h 代表用户 home 目录,%u 代表用户名。  
ChrootDirectory /data/sftp/%u 
# 强制执行内部 sftp,并忽略任何 ~/.ssh/rc 文件中的命令
ForceCommand internal-sftp

# 是否允许 TCP 转发,默认值为 "yes", 禁止 TCP 转发并不能增强安全性,除非禁止了用户对 shell 的访问,因为用户可以安装他们自己的转发器。  
AllowTcpForwarding no

# 是否允许进行 X11 转发。默认值是 "no",设为 "yes" 表示允许。如果允许 X11 转发并且 sshd(8)代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。那么将可能有额外的信息被泄漏。由于使用 X11 转发的可能带来的风险,此指令默认值为"no"。需要注意的是,禁止 X11 转发并不能禁止用户转发 X11 通信,因为用户可以安装他们自己的转发器。  
X11Forwarding no 

相关文章

openwrt usb热插拔 u盘或移动硬盘热插自动挂载
openwrt 移动硬盘开机挂载失效解决
Ubuntu 22.04 安装 Wireguard
Linux 使用rsync快速删除海量文件目录
acme.sh 申请ZeroSSL泛域名证书

发布评论