gitlab禁止用户自己删除帐号

自建gitlab,发现 /-/profile/account竟然可以删除自己的帐号,然后小伙伴就删除了。

查到相关讨论:

短时间内是没有这功能了。
为了合规,确实应该有注销帐号功能,但自建自用的,有时不希望被删除,不用的帐号禁用即可。

于是打算自己改造实现,计划从nginx入手,禁用掉相关的URL访问。
看了下相关页面和接口,删除是提交数据到/users这个公共的API,不好禁用。
于是打算禁用 /-/profile/account
相关的配置是在/var/opt/gitlab/nginx/conf/gitlab-http.conf中,打算增加一条规则。

if ($request_uri  ~* "/-/profile/account")
{
	return 404 'account disable by admin';
}

为了方便,写成了脚本(操作前记得备份配置文件,改坏不赔)

#确定要插入配置的行,根据当前配置内的相似配置
export FN=/var/opt/gitlab/nginx/conf/gitlab-http.conf
export LN=$(cat $FN | grep "location /assets" -n| awk -F ":" '{print $1}')
echo $LN
#插入配置
export CFG="if (\$request_uri  ~* \"/-/profile/account\"){return 404 'account disable by admin';}"
echo $CFG
sed -i "${LN} i $CFG" $FN

配置改好后,重启下nginx就行了gitlab-ctl restart nginx

posted on 2022-01-19 22:50  aozima  阅读(469)  评论(0编辑  收藏  举报

导航