【GitLab Error code 500 错误日志提示 access denied 拒绝访问】

GitLab Error code 500 错误日志提示 access denied 拒绝访问

  • 所解决的问题
  • 说明
  • 处理过程
  • 问题
  • 补充

所解决的问题

服务器重启后无法访问GitLab服务UI,服务页面显示code 500

说明

此处介绍自建Gitlab 由子服务运行失败所引起的 code 500 异常案例 和 其解决方法

处理过程

  1. 首先查看gitlab各子服务运行状态;
    【GitLab Error code 500 错误日志提示 access denied 拒绝访问】_第1张图片

  2. 查看运行异常的子服务日志;

# 查看服务日志
	gitlab-ctl tail redis-exporter

发现日志中提示子服务 redis_exporter 脚本: access denied 拒绝访问!

【GitLab Error code 500 错误日志提示 access denied 拒绝访问】_第2张图片

  1. 此处的access denied是由文件权限发生变化权限降级所引起(和许多博客由本地密钥所引起的情况不一样);

查看文件权限信息 显示脚本文件权限全部为 -

文件信息

  1. root用户被提示:Operation not permitted(若没有这种情况可跳过);

执行chmod命令会发现无法没有权限修改,即使是root用户也不行

# 查看当前文件属性
	lsattr ./redis_exporter

执行 lsattr 命令后可以看到当前文件有个 i 属性,查阅命令帮助文档可以看到有i属性的文件是不能修改的,更不可被删除,即使是root用户也不可

lsattr

去除文件中 i 属性

# 去除 "i" 属性
	chattr -i webapps   
  1. 修改文件权限;
	chmod 777 ./redis_exporter
  1. 重复以上步骤将gitlab服务中出现降权问题的脚本重新赋权,完成后重新启动gitlab服务即可正常运行;

问题

access denied 文件权限自动发生降权的具体原因没有排查到,有遇到相同情况的朋友可以一起交流 ~

补充

此处记录一些过程中可能会用到额外命令(Linux)

#单独执行脚本时提示 exec: chpst: not found (找不到chpst)
#可以设置临时的环境变量 (路径/opt/gitlab/embedded/bin 为chpst位置)	
export PATH=/opt/gitlab/embedded/bin:$PATH
 
#执行GitLab 异常检查 
gitlab-rake gitlab:check

以上案例解决方案如果能帮助到您可以点赞关注支持下~

有问题可直接下方列表提问,博主看到会及时回复。

你可能感兴趣的:(#,GitLab,git,linux)