Linux系统的SFTP多用户权限配置

SFTP(Secure File Transfer Protocol,安全文件传输协议)是一种基于可靠数据流(data stream),提供文件存取和管理的网络传输协议。与 FTP 协议相比,SFTP 在客户端与服务器间提供了一种更为安全的文件传输方式,如果你还在使用 FTP 来进行文件传输,强烈建议切换到更为安全的 SFTP 上来。同时,SFTP只需用到一个端口(通常是22号端口),且大部分Linux系统都支持SFTP协议,这意味着SFTP有着较好的兼容性。

安装OpenSSH

1、确保你的CentOS系统已经安装了OpenSSH软件包,如果没有安装,可以使用以下命令进行安装,如下图:

sudo yum install openssh-server

Linux系统的SFTP多用户权限配置

2、查询安装的OpenSSH版本,命令:

ssh -V

Linux系统的SFTP多用户权限配置

新增用户组及用户

进入root用户权限下进行操作:

1、创建一个目录 /opt/ftpsite,命令如下:

mkdir -pv /opt/ftpsite/{admin,user1,user2}

2、新增2个用户组:sftpadmins和sftpusers,命令如下:

groupadd sftpadmins
groupadd sftpusers

3、新增admin用户并创建密码,用户归属于sftpadmins用户组,命令如下:

useradd -g sftpadmins -s /sbin/nologin -d /opt/ftpsite/ admin
passwd admin

说明:账号的shell使用 /sbin/nologin,此时admin用户无法SSH登陆系统

4、新增user1和user2用户并创建密码,用户归属于sftpusers用户组,命令如下:

useradd -g sftpusers -s /sbin/nologin -d /opt/ftpsite/ user1
passwd user1
useradd -g sftpusers -s /sbin/nologin -d /opt/ftpsite/ user2
passwd user2

修改sshd_config配置文件

1、使用以下命令修改sshd_config配置文件:

vim /etc/ssh/sshd_config

2、若你的CentOS系统安装了宝塔面板,也可以直接打开SSH服务器配置文件 /etc/ssh/sshd_config 进行以下修改:

①将 Subsystem sftp /usr/libexec/openssh/sftp-server 这一行注释掉,在行前添加 # 符号即可,如下图
②添加以下行到文件末尾:

#指定使用sftp服务,使用系统自带的internal-sftp
Subsystem sftp internal-sftp

#配置用户组sftpadmins
Match Group sftpadmins
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

#配置用户组sftpusers
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

说明:
●Subsystem sftp internal-sftp:指定使用sftp服务,使用系统自带的internal-sftp
●Match Group sftpadmins:配置用户组
●ChrootDirectory %h:用户通过sftp登录后就把根目录切换到它自己的家目录
●ForceCommand internal-sftp:指定sftp流程,此方法性能更优
●AllowTcpForwarding no:禁止TCP转发
●X11Forwarding no:禁止X11转发

3、更改配置后重启sshd服务

systemctl restart sshd.service

修改用户权限

1、设置admin文件所有者,只能自己访问所属目录(700权限):

chown -R admin:sftpadmins /opt/ftpsite/admin
chmod 700 /opt/ftpsite/admin

2、设置user1文件所有者,同组也能访问,但不能写(750权限):

chown -R user1:sftpusers /opt/ftpsite/user1
chmod 750 /opt/ftpsite/user1

3、设置user2文件所有者,不同组也可访问,但不能写(755权限):

chown -R user2:sftpusers /opt/ftpsite/user2
chmod 755 /opt/ftpsite/user2

说明:
●admin用户可以在所属目录下上传、下载文件,无法访问user1和user2文件夹

Linux系统的SFTP多用户权限配置
●user2用户无法访问admin文件夹,访问user1文件夹只能读不能写

Linux系统的SFTP多用户权限配置
●user1用户功能不再赘述

其他需求

若要实现admin组用户可以读写sftp根目录下所有文件,而user组用户(user1/user2)只能对自己的目录只读,权限修改如下:

1、admin组用户只能自己读写所属目录(770权限)

chmod 770 /opt/ftpsite/admin

2、user组用户只能自己所属目录(500权限)

chmod 500 /opt/ftpsite/user1

3、user组用户只能自己所属目录(500权限)

chmod 500 /opt/ftpsite/user2
在CentOS系统上安装SFTP服务器-十一张
✅来源:十一张博客
© 版权声明
THE END
如果觉得这篇文章对您有帮助,不妨考虑请我喝杯奶茶😄
点赞1赞赏 分享
评论 抢沙发
头像
评论人工审核通过显示,请勿重复提交!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容