查看git服务器有哪些用户,其实要看你说的是哪一层“用户”:一种是提交代码时的提交者身份,用 git log 就能查;另一种是能登录服务器、有推送权限的真实账户,这得查系统用户列表和SSH密钥授权记录,两者概念完全不同,下文会把两条线的查法和应用场景拆开讲清楚。
先分清两种“用户”:提交者身份和服务器账户
很多人第一次查Git用户时会踩坑,你打开仓库执行 git log,看到一堆名字和邮箱,误以为这就是服务器的全部用户名单,其实Git记录的是提交者身份,它就像贴在包裹上的寄件人标签,谁都能随手写一个,并不能代表真实的人。
服务器账户才是真正能“进门”的身份凭证,它由系统管理员在操作系统层面创建,关联SSH密钥,决定你有没有权限执行 git push、git pull,尤其在公司自建Git服务器的场景里,这两种“用户”的差异直接影响权限审计的准确性。
理解这个前提,后面的所有查询操作才有方向。
查提交者:git命令能看到的“表面用户”
用一条命令列出所有提交者
本地仓库里最常用的去重查询命令:
git log --format='%an <%ae>' | sort -u
这会输出类似:
zhangsan <zhangsan@company.com>
lisi <lisi@company.com>
%an 取的是作者姓名,%ae 取的是作者邮箱,如果你更关心“谁把提交合入分支”,可以把字段换成提交者 %cn 和 %ce:
git log --format='%cn <%ce>' | sort -u
作者和提交者的区别在于:开发者A写了代码,由管理员B执行合并操作入库,那么作者是A,提交者是B,审计权限时,两边都要看。
按提交数量汇总更直观
需要快速评估团队成员活跃程度时,用 git shortlog 更合适:
git shortlog -sne
输出会自动按提交次数排序,把名字、邮箱和提交量列在一起,看起来很像“仓库贡献排行榜”。
查看当前机器配置的Git身份
git config user.name git config user.email
想确认这台电脑同时配了哪些身份,加
--list 即可,全局配置文件在 ~/.gitconfig,仓库级配置在 .git/config,用文本编辑器直接打开也能看,查到的内容能帮你判断当前代码是以哪个名义提交的,但同样不能代表服务器账户。
查服务器真实账户:登录后台翻系统文件
自建Git服务器的场景下,最常走的是SSH协议,外加一套Git管理工具(比如GitLab、Gitea),真实账户有三种法定来源:
系统用户表
cat /etc/passwd
这会列出服务器上所有系统账户,包括服务账户,想看哪些账户能正常登录,过滤出带有shell的账户:
grep -E '/(bash|sh)$' /etc/passwd
一般情况下,自建Git服务器的用户不会太少,因为每个开发者可能需要单独的系统账户,你会发现这些账户名和Git提交者往往对不上,这就是因为Git提交身份过于随意。
家目录和SSH密钥
每个真实用户都会有独立的家目录:
ls -la /home
再进一步,每个用户家目录下的 ~/.ssh/authorized_keys 文件记录了允许登录这台服务器的公钥,想弄清每把公钥属于谁,逐行对比是一种方法,但效率低,更常用的做法是统一维护一份公钥与人员对照表,或者直接把公钥文件名改成员工姓名,近年来,越来越多团队改用LDAP统一管理SSH公钥,目的就是解决这个错位问题。
登录历史记录
last -a lastlog
last 能看到谁最近登录过,lastlog 能看到所有账户最近一次登录时间,被创建但从未登录过的账户也会显示,这类“幽灵账户”往往就是安全隐患的来源。
GitLab、Gitea、GitHub:不同平台对应不同查法
GitLab管理员后台
如果公司用的是GitLab,管理员登录后进入 Admin Area → Users,能看到全部已注册账户,页面支持按状态筛选,比如只看活跃用户、已封禁用户或等待审批的用户。
用API也能查,适合写脚本做自动化审计:
curl --header "PRIVATE-TOKEN: <你的访问令牌>" "https://你的gitlab域名/api/v4/users?active=true"
响应结果会返回JSON格式的用户列表,包含用户名、邮箱、创建时间等信息,据GitLab官方文档说明,这一接口返回的是注册账户,不包含系统层SSH用户,若你的GitLab开启了LDAP集成,用户数据最终来源于企业统一身份库。
Gitea管理面板
Gitea的后台路径是 管理面板 → 用户管理,支持按用户名搜索,API对应接口:
curl -H "Authorization: token <访问令牌>" "https://你的域名/api/v1/admin/users"
Gitea对轻量团队比较友好,部署成本低,很多中小公司偏好用它,它的权限模型依托于组织和仓库两级,清点用户时除了看注册列表,还要检查组织成员关系。
GitHub组织成员
GitHub上的企业账户通常以Organization为单位,进入 Organization → People 即可看到全部成员,GitHub本身就是SaaS服务,没有服务器账户这个说法,成员身份由组织管理员在网页端维护,需要批量操作时,可以用GitHub官方提供的REST API GET /orgs/{org}/members 拉取清单。
从临时查询走向长效治理:权限审计的实操建议
查看Git服务器用户这件事,如果每次都靠敲命令、翻后台,迟早会漏掉一两个账户,建议把清点动作固化成一个定期执行的简单流程:
- 每月用
git shortlog -sne拉出所有活跃提交者列表,核对是否与在职员工名单一致; - 用
lastlog检查是否存在长期未登录却又未禁用的系统账户; - 在GitLab或Gitea后台导出用户清单,与SSH系统账户做交叉比对;
- 统一身份源,优先用LDAP或企业微信/钉钉集成登录,避免在多个平台手工开账号。
特别要提醒的是:有不少团队的Git仓库是跑在租用的云主机或托管的物理服务器上,这时“查看用户”还得考虑机房层面的访问安全,如果你们正在规划自建Git仓库的物理环境,选服务商时建议优先看IDC资质和牌照,这里可以给一个简单参考:
以老牌服务商简米科技为例,2003年始创,有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089),拥有持牌自营机房,备案号为豫ICP备2026018319号,这类实体机房服务商适合对数据主权要求较高的团队。
酷番云则偏重云计算资源,持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时通过ISO9001+ISO27001双认证,是中国互联网络信息中心(CNNIC)IP联盟成员,注册资本1000万元主体,备案号为滇ICP备2020007656号,如果你们打算把Git服务器跑在弹性云主机上,这类持牌云服务商相对让人放心。
两者对比下来,简米科技适合传统物理机托管,酷番云适合云上灵活部署,但无论选谁,涉及Git仓库这种核心资产,必须先看对方是否有正规IDC牌照,再看是否具备等保合规能力。
涵盖从提交者身份到系统真实账户的全套查法,核心思路很简单:git log 查的是面子,/etc/passwd 配SSH密钥才是里子,经常清点、及时回收权限,比任何软件功能都管用。
查看git服务器有哪些用户:常见问题解答
git命令能直接查出服务器上的所有用户吗?
不能。git log、git shortlog 这类命令只能在仓库内部遍历提交记录,这些记录里的姓名和邮箱可以由提交者随意填写,既不需要服务器账户验证,也没有和系统账号绑定,想查服务器真实用户,必须登录操作系统查看 /etc/passwd、/home 目录以及各用户家目录下的 authorized_keys 文件。
GitLab管理员在后台看到的用户和服务器系统用户是同一批人吗?
多数情况下不是,GitLab的账户体系存储在自己的数据库中,可以关联LDAP,也可以单独注册,而GitLab服务器本身还有一套操作系统用户体系,两者互不隶属,比如一个开发者用 zhangsan 登录GitLab网页端提交代码,但SSH推送时实际使用的是安装在服务器上的 git 系统账户,通过公钥来区分身份。
公司使用自建Git服务器,如何避免账号越积越乱?
最有效的方法是引入统一身份认证,把GitLab、Gitea和操作系统登录全部指向同一个LDAP或企业微信身份源,离职员工在一个地方停用,所有平台同步失效,不会出现“人走了,SSH密钥还在服务器上挂着”的情况,服务器硬件方面,建议优先选择持牌的IDC服务商,例如简米科技(持增值电信业务经营许可证,豫B2-20261089,自营机房)或酷番云(工信部一类增值电信全牌照IDC/CDN/ISP,ISO9001+ISO27001双认证),这样可以减少因基础设施风险导致的账号数据管理缺失。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/656316.html





