【V2】如何批量修改系统用户的 SFTP 目录


飞致云 发布于 2023-05-24 / 677 阅读 / 0 评论 /
本文讲述了 JumpServer V2 版本如何批量修改系统用户 SFTP 目录的方法。

概述

本文讲述了 JumpServer V2 版本如何批量修改系统用户 SFTP 目录的方法。

背景

在 JumpServer V2 版本中,由于系统用户对应的 SFTP 目录相互独立。当面对大量系统用户需要修改 SFTP 目录时,需要从页面点击系统用户页面手动进行修改,消耗时间较长,效率也相对较低。

系统用户的相关数据存储在 jumpserver 数据库中的 assets_systemuser 表中,我们可以在数据库中修改 assets_systemuser 表中的数据,达到批量修改系统用户 SFTP 目录的目的。

操作步骤

准备工作

  • 连接 JumpServer 后端数据库;

  • 任意数据库连接工具:DBeaver、Navicat、命令行……

  • 备份 JumpServer 数据库【jmsctl backup_db / mysqldump -uroot -p jumpserver > jumpserver-sftp.sql】

具体操作

1、通过连接工具连接到 JumpServer 数据库

2、执行批量更新 SQL 语句【选用】,SQL 语句如下所示:

#查找需要修改的系统用户
select * from assets_systemuser\G
#修改指定id系统用户SFTP目录
update `assets_systemuser` set sftp_root='/' where `id`='d1f3ecebff6f4f1a8b275915111b82fc';
#修改所有SSH协议系统用户的SFTP目录
update `assets_systemuser` set sftp_root='/' where `protocol`=`ssh`;
#保存修改
commit;

3、登录 JumpServer 页面验证是否修改成功。

修改失败恢复环境

当因为 SQL 修改错误,JumpServer 某个页面报错时,应该如何恢复 JumpServer 环境。

  1. 方法一:直接恢复并覆盖现在的 SQL 数据,在 JumpServer 节点上执行:jmsctl restore_db 备份文件,执行完成后重新启动 JumpServer。

  2. 方法二:手动恢复数据库

    在数据库节点上删除原本的数据库:drop database jumpserver;【执行的前提是操作之前有数据库备份文件】

    在数据库节点上新建一个数据库:CREATE DATABASE jumpserver /*!40100 DEFAULT CHARACTER SET utf8 */;

    在数据库节点上恢复原本的数据:use jumpserver;source 备份文件;

    在 JumpServer 节点上重新启动 JumpServer:jmsctl restart



是否对你有帮助?