SFTP多用户,每个角色只能控制自己的子目录

文章提供了两种方案来在Linux服务器上创建多个sftp用户,每个用户有独立的目录且无权访问其他用户的目录。方案一中,用户可以看到但不能操作对方的目录;方案二则进一步隐藏了其他用户的目录,完全隔离了用户间的操作。配置涉及创建用户组,设置用户权限,修改SSH配置以限制用户访问范围,并通过内部-sftp实现SFTP服务。
摘要由CSDN通过智能技术生成

一、方案1

1. 创建用户组

2. 添加用户并设置为sftp组

3. 设置用户密码

4. 创建用户目录。并设置权限

5. 修改SSH配置

6. 在/etc/ssh/sshd_config添加用户组配置

7. 最后重启SSH

二、方案2(推荐)

2.1. 创建用户组

2.2. 添加用户并设置为sftp组

2.3. 设置用户密码

2.4. 创建用户目录。并设置权限

2.5. 修改SSH配置

2.6. 在/etc/ssh/sshd_config添加用户组配置

7.最后重启SSH

linux 文件服务器需要创建多个sftp用户,每个用户分别给予各个厂商,用户之间无权限操作对方目录的权限。
例如:sftp1用户无法操作sftp2用户的目录以及下面的数据文件,相反,一样!

一、方案1

基于sftp组,每个用户之间无操作对方目录以及文件的权限,但是,双方用户目录可见。
例如:sftp1用户可以看到sftp2用户的操作目录,只是无权限访问

1. 创建用户组

groupadd sftp

2. 添加用户并设置为sftp组

useradd -g sftp -s /sbin/nologin -M sftp1    

useradd -g sftp -s /sbin/nologin -M sftp2

注:(/sbin/nologin为禁止登录shell的用户)

3. 设置用户密码

passwd sftp1

passwd sftp2

4. 创建用户目录。并设置权限

mkdir -pv /home/sftp/sftp1

mkdir -pv /home/sftp/sftp2

chown sftp1:sftp /home/sftp/sftp1

chown sftp2:sftp /home/sftp/sftp2

chmod 700 /home/sftp/sftp1

chmod 700 /home/sftp/sftp2

usermod -d /home/sftp/sftp1 sftp1

usermod -d /home/sftp/sftp2 sftp2

5. 修改SSH配置

先备份配置文件cp-avi/etc/ssh/sshd_config/etc/ssh/sshd_config_bakvim

vim /etc/ssh/sshd_config

找到关键词 Subsystem

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

修改为

Subsystem sftp internal-sftp

6. 在/etc/ssh/sshd_config添加用户组配置

Match Group sftp   #限制的用户组

X11Forwarding no  

AllowTcpForwarding no

ForceCommand internal-sftp

ChrootDirectory /home/sftp  #所有sftp用户的根目录,也就是sftp组的根目录

7. 最后重启SSH (取决于适配哪个命令)

service sshd restart

systemctl restart sshd

二、方案2(推荐)

基于sftp用户,每个用户之间操作目录不可见,无操作对方目录以及文件的权限。
例如:sftp1用户看不到sftp2用户的操作目录,也无权限操作对方的目录以及数据文件。

2.1. 创建用户组

groupadd sftp

2.2. 添加用户并设置为sftp组

useradd -g sftp -s /sbin/nologin -M sftp1

useradd -g sftp -s /sbin/nologin -M sftp2

注:(/sbin/nologin为禁止登录shell的用户)

2.3. 设置用户密码

passwd sftp1

passwd sftp2

2.4. 创建用户目录。并设置权限

mkdir -pv /home/sftp/sftp1

mkdir -pv /home/sftp/sftp2

chown root:root /home/sftp/sftp1

chown root:root /home/sftp/sftp2

mkdir /home/sftp/sftp1/send

mkdir /home/sftp/sftp2/send

chown sftp1.sftp /home/sftp/sftp1/send

chmod 775 /home/sftp/sftp1/send

chown sftp2.sftp /home/sftp/sftp2/send

chmod 775 /home/sftp/sftp2/send

2.5. 修改SSH配置

先备份配置文件cp-avi/etc/ssh/sshd_config/etc/ssh/sshd_config_bakvim

vim /etc/ssh/sshd_config

找到关键词 Subsystem

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

修改为

Subsystem sftp internal-sftp

2.6. 在/etc/ssh/sshd_config添加用户组配置

#sftp1用户配置

Match User sftp1

ChrootDirectory /home/sftp/sftp1 #sftp1用户登录的根目录

AllowTcpForwarding no

X11Forwarding no

AllowTcpForwarding no

ForceCommand    internal-sftp

#sftp2用户配置

Match User sftp2

ChrootDirectory /home/sftp/sftp2 #sftp2用户登录的根目录

AllowTcpForwarding no

X11Forwarding no

AllowTcpForwarding no

ForceCommand    internal-sftp

7.最后重启SSH (取决于适配哪个命令)

service sshd restart 

systemctl restart sshd

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值