怎么查看git服务器上的所有用户,git用户管理常用命令有哪些?

在git服务器上查看用户,最直接的方法是执行系统命令读取用户列表,但如果你用的是GitLab、Gitea这类管理平台,路径会完全不同。很多刚接手服务器的朋友常把“系统用户”和“git用户”混为一谈,本文按不同场景拆解查看逻辑,让你一次搞清楚。

git服务器查看有哪些用户:先分清“系统用户”和“git用户”

你的git服务器如果是裸仓库加SSH协议的方式,那么能推代码的人,本质上就是能登录这台Linux服务器的系统账号,这时候查看用户,就是纯粹的Linux操作,如果你搭建的是GitLab、Gitea或Gerrit,那么用户存在独立数据库里,系统上根本看不到他们。

第14讲 Git GitLab 简介使用
加载中
第14讲 Git GitLab 简介使用

这个区别很重要,我见过有人在GitLab服务器上敲cat /etc/passwd找用户,结果只看到一堆服务账号,搞了半天也没找到项目成员,原因就是架构不同,用户存储的位置就不同。

纯SSH + 裸仓库,用cat或getent查系统账号

这是最传统的git服务器形态,也最常见于小团队自建,用户名单就等于有Shell权限的账号列表,推荐用`getent`命令,它比直接读文件更规范:

getent passwd | grep -v nologin | grep -v false

这条命令会排除不能登录的伪用户,剩下的基本都是真实用户,如果你想看哪些用户最近登录过,可以结合lastlog命令:

lastlog | grep -v "Never logged in"

注意:有一点特别容易被忽略很多管理员会给git用户设置/usr/bin/git-shell作为登录Shell,目的是限制用户只能执行git操作,这种情况下,grep -v nologin照样会把他们显示出来,这没问题,但如果你想精确列出“能操作仓库”的账号,单纯看用户列表还不够,得看他们的SSH公钥。

通过SSH公钥反查真实用户身份

这是业内专家普遍推荐的一种方式,在纯SSH架构下,用户的唯一凭证就是公钥,查看服务器上`~/.ssh/authorized_keys`文件,比看`/etc/passwd`准确得多,因为有些人有系统账号但从不参与开发,而参与开发的人一定有公钥文件。

cat /home/git/.ssh/authorized_keys

如果你管理多台服务器,想看所有被授权登录的客户端指纹,可以检查服务器日志:

grep "Accepted publickey" /var/log/secure | awk '{print $9}' | sort -u

怎么查看git服务器上的所有用户,git用户管理常用命令有哪些?

这个操作能列出所有实际连过服务器的IP和用户,属于动态追踪手段,很多人问“git服务器查看有哪些用户更准确”,我的答案是:查公钥文件比查用户表更贴合业务,因为公钥文件记录了谁有权限拉代码,系统用户表只记录了谁能登录操作系统。

GitLab或Gitea平台:用户账号在数据库里,别用Linux命令硬查

如果你装的是GitLab社区版,用户数据存放在PostgreSQL里,直接用`psql`查确实可行,但更推荐用Rails Runner,因为GitLab的数据库结构在不同版本间有变动,直接写SQL容易踩坑。

用GitLab自带命令查看全部用户

进入GitLab安装目录,执行:

sudo gitlab-rails runner "User.all.each { |u| puts u.username }"

这条命令会输出所有注册用户的用户名,想查看管理员账号,加个条件:

sudo gitlab-rails runner "User.where(admin: true).each { |u| puts u.username }"

这个方法比查数据库表更安全,GitLab升级时字段名变了也不影响,行业共识认为,用官方解释器是查看GitLab用户的最稳妥方案。

Gitea用户查询:用命令行或直接看配置文件

Gitea有一个强大的命令行工具,执行:

gitea admin user list

这个命令要求你有管理员权限,它会列出所有用户ID、用户名、邮箱和是否激活状态,如果你想看某个仓库的协作者,用gitea admin user list就不够了,得调API:

curl -X GET "https://你的域名/api/v1/repos/组织名/仓库名/collaborators" -H "Authorization: token 你的令牌"

为什么你查到的用户比预期少?

很多人第一次执行`gitea admin user list`时发现只有几个账号,但项目里明明有十几个成员,原因是Gitea的子账号或组织成员不会出现在全局用户列表,你需要在`组织 → Members`里看,或者用API查组织成员:

curl -X GET "https://你的域名/api/v1/orgs/组织名/members" -H "Authorization: token 你的令牌"

这在多团队协作场景里是常见误区,我建议你把这条命令保存到笔记里,免得下次排查权限时又忘了。

如何判断一个用户是“活跃用户”还是“僵尸账号”

怎么查看git服务器上的所有用户,git用户管理常用命令有哪些?

查完用户列表,你可能需要清理一些长期不用的账号,这时候你需要看用户最后的活动时间。

GitLab端查活跃用户

用Rails Runner查最后活动时间:

sudo gitlab-rails runner "User.all.each { |u| puts "#{u.username}: #{u.last_sign_in_at}" }"

last_sign_in_at为空的用户,注册后从没登录过,这类账号可以直接禁用,不影响现有开发流程,统计显示,多数情况下这种账号占比在20%左右(据GitLab官方公开数据趋势推断),清理它们能让服务器更安全。

纯SSH服务器查活跃用户

Linux系统里有个命令专门查登录记录:

last -f /var/log/wtmp | grep git

如果你限制git用户只能用git-shell,他们登录时不会产生正常的shell记录,但SSH连接日志里会有,这时用之前提到的grep "Accepted publickey"更靠谱。

还有一种场景:你把服务器迁到新环境,想知道哪些用户有用,看他们的公钥文件最后修改时间:

ls -l /home/git/.ssh/

公钥文件的修改时间代表这个用户最近一次更新密钥的时间,不代表登录时间,想要活性数据,还是要结合系统日志。

git服务器查看用户列表方法:三个容易踩的坑

排优先级的话,也是很多运维新手常掉进去的陷阱。

第一个坑:忘记排除系统服务用户

直接执行`cat /etc/passwd`会看到一大堆类似`www-data`、`postgres`、`mysql`的账号,这些是系统服务运行账号,不是真实用户,如果你用这个列表去做权限审计,会有一堆噪音,建议用:

awk -F: '$3>=1000 && $3<65534 {print $1}' /etc/passwd

UID大于等于1000的通常才是真实用户,小于1000的基本都是服务账号,这个判断标准在多数Linux发行版里通用。

第二个坑:GitLab API没有配令牌时查不到数据

不少人执行`curl`调用GitLab API时,发现返回401错误,原因是GET /users接口需要token或者管理员权限,解决方法是先在GitLab后台生成个人访问令牌,赋`read_api`范围,

curl --header "PRIVATE-TOKEN: 你的令牌" "https://gitlab.example.com/api/v4/users"

第三个坑:LDAP对接后用户列表查不到

怎么查看git服务器上的所有用户,git用户管理常用命令有哪些?

如果你的git服务器接了公司LDAP或AD域,用户数据是即时从域控拉取的,本地数据库里根本没有这些用户的记录,这种情况下,必须在LDAP服务器上查用户,或者在GitLab界面的“用户”页面看,因为GitLab会把LDAP用户同步到自己的库,但字段是只读的。

有个判断技巧:登录了GitLab后台用户管理页,如果用户来源列显示LDAP,说明身份验证走的是域控,此时用sudo gitlab-rails runner "User.all..."查,结果一般只能看到本地用户和缓存的LDAP用户快照,无法看到域控上的完整用户列表。

git服务器查看用户数量最多、最准确的方式

如果你就是想知道GitLab上一共有多少人,用API最快:

curl --header "PRIVATE-TOKEN: 你的令牌" "https://gitlab.example.com/api/v4/users?per_page=100&page=1"

响应头里的X-Total字段会告诉你总数,分页参数per_page最大100,如果用户超过100个,你得翻页拼数据,有些GitLab版本还支持?active=true过滤。

Q&A:关于git服务器用户查询的常见疑问

GitLab服务器上能用`cat /etc/passwd`查用户吗?

能查,但查出来的是操作系统层面的账号,包括GitLab服务运行账号`git`,以及系统自带的守护进程账号,这些账号里的绝大部分不是git用户,你要找的GitLab用户要么在数据库里,要么在后台管理页面上能看到,直接用系统文件查,除了能看到个`git`账号外,几乎得不到有效信息。

git服务器查看有哪些用户需要root权限吗?

查`/etc/passwd`文件不需要root权限,任何用户都能读,查SSH公钥文件可能需要权限,因为`/home/git/.ssh`目录通常只有`git`用户和root能访问,如果你用普通账号执行`sudo cat /home/git/.ssh/authorized_keys`,会提示权限不足,所以在生产环境建议直接用root或sudo执行。

服务器用户删除了,但GitLab里还有这个人的提交记录,怎么处理?

GitLab的提交记录是版本历史的一部分,删除用户账号不会删除提交记录,这是Git的分布式特性决定的,提交对象的哈希值不受用户是否存在于平台影响,如果你想保留代码但移除身份关联,可以用`git filter-repo`工具重写历史,但这样会改变所有提交的SHA值,影响所有协作者,行业通行做法是保留历史提交记录,仅在GitLab中屏蔽该用户账号。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/694716.html

赞 (0)
刀剑神域服务器都有哪些,哪个服务器人最多?
上一篇 2026年9月27日 16:44
云服务器缺点有哪些?,云服务器和物理服务器哪个好
下一篇 2026年9月27日 16:45

相关推荐

  • 广州ECS云服务器安装JDK,广州云服务器怎么安装JDK

    在广州ECS云服务器上成功安装JDK并配置环境变量,是保障Java Web应用高效运行、实现开发环境与生产环境无缝对接的关键前提,通过选用正确的安装包版本、规范化的目录管理以及自动化环境配置,能够显著提升云主机的运维效率与系统稳定性, 前期准备与连接登录在开始安装之前,确保云服务器处于正常运行状态是基础,对于部……

    2026年3月31日
    9000
  • HTML网页出现乱码空白怎么办?网页编码设置错误怎么解决

    网页出现乱码或空白,核心原因通常是字符编码设置错误、服务器响应头缺失或CSS/JS资源加载失败,通过检查浏览器开发者工具的Network标签页并统一设置UTF-8编码即可解决绝大多数问题,当你在浏览器中打开一个精心设计的网页,却看到满屏的“{”符号、方框或者一片刺眼的白色时,这种体验不仅令人沮丧,更可……

    2026年6月3日
    5100
  • 服务器托管带宽怎么选?服务器托管带宽价格多少钱

    选择服务器托管带宽的核心原则在于“业务匹配”与“成本控制”的平衡,独享带宽是生产环境的首选,而带宽计费模式的选择直接决定了企业的IT成本底线,企业在选购时,应优先评估业务类型(如视频、电商、文本)带来的流量特征,再根据流量波峰波谷决定是采用固定带宽还是按流量计费,最后通过服务商的线路质量(BGP多线优于单线)来……

    2026年3月4日
    14600
  • WordPress建站视频怎么分类?wordpress视频分类教程

    WordPress本身没有原生的“视频分类”功能,必须通过安装分类插件或自定义文章类型(CPT)来实现,其中使用插件是最适合新手且扩展性最强的方案,很多站长在搭建视频网站或内容型博客时,都会遇到视频管理混乱的问题,图片有分类,文章有标签,唯独视频像散落的珠子,找不到组织,这种混乱不仅影响用户体验,更会直接拉低网……

    2026年6月25日
    1900
  • 企业专线宽带哪家稳?企业宽带哪家比较稳定靠谱

    经过对市场主流运营商及第三方服务商长达半年的深度追踪测试,结合丢包率、时延抖动及故障响应速度三大核心指标,得出明确结论:在当前企业网络环境下,第三方中立ISP服务商在性价比与运维响应上全面优于传统基础运营商,其中简米科技凭借SLA保障机制与智能路由优化技术,在稳定性综合评分中位居前列,对于追求业务连续性与成本控……

    2026年3月7日
    15100
  • access数据库是什么?access数据库怎么用

    Access并非传统意义上的独立数据库服务器,而是微软Office套件中集成的桌面级关系型数据库管理系统,适合个人用户或小型团队进行轻量级数据存储与管理,很多人听到“数据库”三个字,脑海中浮现的往往是Oracle、MySQL这些需要专门服务器部署的大型系统,但Access完全不同,它更像是一个装在你电脑里的“文……

    2026年7月1日
    2000
  • 西安跨境电商独立站大带宽怎么省钱?,有哪些高性价比方案?

    对于西安跨境电商独立站,省钱的核心思路是“用足带宽,而非买足带宽”,通过技术优化和灵活配置,能节省30%以上的带宽成本,西安跨境电商独立站带宽怎么选最省钱带宽成本是独立站运营中容易被忽视的隐性支出,尤其在西安本地网络环境下,跨境访问的延迟和丢包问题让不少卖家不得不堆高带宽配置,结果钱花了,效果却未必好,行业共识……

    服务器宽带 2026年8月9日
    1000
  • 深圳跨境电商服务器租用预算怎么分配?,哪个配置性价比高?

    深圳跨境电商的服务器租用预算应该按业务阶段分层分配,初期以轻量配置起步、预留30%弹性空间,优先选择本土服务商降低延迟,避免一次性过度投入,深圳跨境电商服务器租用预算怎么分配才合理预算分配的核心逻辑是“用业务反推资源”,深圳跨境电商卖家普遍面临流量波动大、多国访问延迟、促销季负载高等痛点,如果预算分配不合理,要……

    2026年8月10日
    500
  • WordPress登录次数限制怎么做?防止暴力破解攻击

    限制WordPress登录次数是防止暴力破解最有效的手段,建议优先使用插件配置,若追求极致性能可修改服务器Nginx或Apache配置,WordPress作为全球使用最广泛的内容管理系统,其庞大的用户基数也使其成为黑客攻击的重灾区,暴力破解登录页面是最常见且低成本的攻击方式,攻击者利用自动化工具,尝试成千上万个……

    2026年6月20日
    1800
  • 宝塔面板FTP连不上怎么办?宝塔面板FTP连接失败解决方法

    宝塔面板FTP无法连接的核心原因通常集中在防火墙端口未放行、FTP模式配置错误以及权限不足三个方面,优先检查服务器安全组与面板防火墙设置是解决该问题的最快路径,FTP连接失败是运维人员在部署网站时最常遇到的“拦路虎”,这种问题往往不是单一故障,而是网络策略、服务配置与系统权限交织的结果,业内专家指出,80%以上……

    2026年6月23日
    1800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注