怎么查看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/%e6%80%8e%e4%b9%88%e6%9f%a5%e7%9c%8bgit%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e7%9a%84%e6%89%80%e6%9c%89%e7%94%a8%e6%88%b7%ef%bc%8cgit%e7%94%a8%e6%88%b7%e7%ae%a1%e7%90%86%e5%b8%b8%e7%94%a8%e5%91%bd/

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

相关推荐

  • ActionScript与JavaScript区别是什么?前端开发选哪种语言

    ActionScript与JavaScript的核心区别在于:前者是专为Flash多媒体交互设计的强类型脚本语言,后者是运行在浏览器原生环境中的弱类型通用编程语言,随着Flash技术的彻底淘汰,JavaScript已成为Web开发绝对的主流选择,ActionScript与JavaScript的本质差异解析要理解……

    2026年6月30日
    1700
  • WordPress中文主题模板哪个好?2026最新WordPress中文主题推荐

    2026年WordPress中文主题首选建议:对于大多数企业站和个人博客,优先选择基于Gutenberg区块编辑器优化的轻量级主题(如Spectra配套主题或专门的中文优化版Astra),若追求极致SEO和速度,则推荐Hello Elementor配合轻量插件方案;若需功能齐全且无需复杂配置,Ikon Buil……

    2026年6月22日
    5000
  • 服务器预读策略究竟有哪些,服务器预读策略怎么设置?

    服务器预读策略主要包括硬件控制器预读、操作系统内核预读、文件系统预读、应用层预读以及基于访问模式的自适应预读,选哪种,取决于你的业务是顺序读多还是随机读多,以及存储介质是HDD还是SSD,服务器预读策略有哪些?先搞懂底层逻辑预读,英文叫readahead或prefetch,本质是猜你下一步要读什么数据,提前从磁……

    服务器宽带 2026年10月4日
    100
  • 推荐5个好用的WordPress购物车插件,WordPress购物车插件哪个好用

    若要在2026年构建高效转化的WordPress电商站点,推荐优先选用WooCommerce、Easy Digital Downloads、YITH WooCommerce Wishlist、CartFlows及ThriveCart这五款插件,它们分别覆盖了通用商品、虚拟产品、营销转化及独立支付场景的核心需求……

    2026年6月22日
    2300
  • 巴中云服务器多少钱,不同配置价格差多少?

    巴中市云服务器一年的费用大致在几百元到上万元之间,具体取决于CPU、内存、带宽和磁盘配置,不同配置的价格差异可以拉开10倍以上,但大多数中小企业和个人站长选择每年1000-3000元**的中低配就足够日常使用了,巴中市云服务器价格多少?先看主流配置报价很多巴中的朋友问“云服务器多少钱”,其实这个问题没有固定答案……

    2026年8月31日
    400
  • 广州FPGA服务器安装配置,FPGA服务器怎么配置?

    在广州地区进行高性能计算集群建设,高效、稳定的硬件集成与底层环境适配是确保FPGA加速性能最大化的核心关键,不同于通用服务器的标准化部署,FPGA服务器的安装配置是一项高度依赖硬件兼容性、散热设计与驱动环境调优的系统工程,直接决定了金融量化分析、基因测序及AI推理等业务场景的计算效率,成功的部署必须始于精准的硬……

    2026年3月31日
    8200
  • 如何用HTML代码制作立体文字?html立体文字代码怎么写

    实现HTML立体文字效果的核心在于结合CSS的text-shadow属性模拟光影层次,或利用SVG滤镜增强质感,无需依赖图片即可在2026年的现代浏览器中实现高性能、可缩放的3D视觉体验,在网页设计的演进过程中,文字不再仅仅是信息的载体,更是视觉设计的核心元素,随着CSS3标准的普及,开发者已经摆脱了使用GIF……

    2026年6月10日
    3400
  • 高端组装服务器有哪些品牌推荐?,哪款性价比高?

    行业共识认为,高端组装服务器没有固定清单,但按算力和场景拆解,主流就是三类:双路计算型、GPU加速型和存储型,你要做的不是找一个“万能”型号,而是先框定预算和用途,再按本文的配置逻辑去筛选,高端组装服务器配置怎么选?CPU、内存、存储三关都要过高端组装机和普通台式机的本质区别在于平台一致性,消费级平台追求单核性……

    服务器宽带 2026年10月23日
    100
  • HTML如何引用ASP文件?ASP与HTML交互的常见方法

    HTML本身无法直接执行ASP代码,必须通过IIS服务器配置或后端解析器将.asp文件交由服务器处理,最终向客户端返回纯HTML结果,很多初学者在搭建网站时,常陷入一个误区:试图在.html文件中直接写<% Response.Write “Hello” %>这样的代码,结果发现浏览器只显示源码而不执……

    服务器宽带 2026年6月6日
    4110
  • 广安弹性云服务器费用是多少?广安云服务器价格表

    广安弹性云服务器费用的性价比核心在于“按需付费”与“资源弹性”的精准匹配,企业通过科学的配置选型与长期规划,完全可以将年度IT基础设施成本降低20%至40%,在数字化转型的深水区,单纯追求低价已不再是明智之举,构建高可用、高弹性且成本可控的云架构,才是实现业务价值最大化的关键路径, 广安弹性云服务器费用的核心构……

    2026年4月1日
    8300

发表回复

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