Cirry's Blog

Gitea批量删除用户

2024-11-11
随笔
3分钟
544字

前景

服务器之前被爆硬盘了,然后没办法就重装了一下。今天用管理员登录了一下gitea才发现里面被机器人注册几千个账号。

几千个账号基本上每个账号都创建了一个空仓库,还有几个账户镜像了几个大仓库,每个仓库都有好几个G,终于找到了硬盘被塞爆的原因了,立马禁止了gitea的注册功能。

那么多的账户没办法手动删了,就用python写了一下。

先去查一下Gitea提供的Api文档提供的删除账户的接口:Delete a user

1
/admin/users/{username}

从接口文档中,我们需要一个用户名,需要一个token,和设置一个purge参数为true

获取token

设置 -> 应用 -> 管理 Access Token -> 选择公开,选择所有权限,然后生成token记录下这个token。

获取用户名

在接口文档中并没有提供获取所有用户名的方法,所以你可以抓包网页去获取用户名,但这并不是一个好方法。

Gitea admin 命令行中提供了一个命令可以获取gitea中的所有用户名。

我自己使用的gitea是用docker搭建的,所以我需要先进入到容器内才能使用gitea命令。

1
# 查看gitea 的容器id
2
docker ps -a
3
4
# 进入gitea容器内部
5
docker exec -it [容器id] /bin/bash
6
7
# 默认不允许使用root用户执行gitea命令
8
# 参考这里: https://github.com/go-gitea/gitea/issues/25498
9
10
# 切换用户
11
su git
12
13
gitea admin user list
14
15
# 打印结果如下,复制下来所有的用户信息
6 collapsed lines
16
# 4e87a7947659:/$ gitea admin user list
17
# ID Username Email IsActive IsAdmin 2FA
18
# 91 lidaspada8366 gil.b.er.t.s.che.ue.r.bq@gmail.com true false false
19
# 95 arleenleibius8 bridge.tland.ol.fi.y.y.a@gmail.com true false false
20
# 97 kamrivers68372 e.lou.i.se.crev.e.l.in.g.y@gmail.com true false false
21
# 98 julioctoman899 b.r.idg.e.tlan.dolfi.y.y.a@gmail.com true false false

脚本

需要修改下面三个高亮的位置。

main.py
1
import requests
2
3
headers = {
4
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.1047.2 Safari/537.36 Edg/96.0.1047.2",
5
"Authorization": "token [replace your token here]"
6
}
7
8
def delete_gitea_user(username):
9
params = {
10
"purge": True
11
}
12
url = "https://gitea.com/api/v1/admin/users/"
13
response = requests.delete(url=url + username, headers=headers, params=params)
14
if response.status_code == 204:
15
print(f"{username},删除成功")
12 collapsed lines
16
else:
17
print(f"{response.status_code}, {username},删除失败")
18
19
if __name__ == '__main__':
20
user_list = [
21
"lidaspada8366",
22
"arleenleibius8",
23
"kamrivers68372",
24
"julioctoman899",
25
]
26
for name in user_list:
27
delete_gitea_user(name)
本文标题:Gitea批量删除用户
文章作者:Cirry
发布时间:2024-11-11
感谢大佬送来的咖啡☕
alipayQRCode
wechatQRCode