账户和限制设置
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
GitLab 管理员可以在其实例上配置项目和账户限制,例如:
- 用户可创建的项目数量。
- 附件、推送和仓库的大小限制。
- 会话持续时间和过期时间。
- 访问令牌设置,如过期时间和前缀。
- 用户隐私和删除设置。
- 组织和顶级组的创建规则。
默认项目限制
您可以配置新用户在其个人命名空间中可创建的默认最大项目数量。此限制仅影响您更改设置后创建的新用户账户。此设置对现有用户不具有追溯效力,但您可以单独编辑现有用户的项目限制。
要为新用户配置个人命名空间中的最大项目数量:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 增加或减少 默认项目限制 值。
如果将 默认项目限制 设置为 0,则不允许用户在其用户的个人命名空间中创建项目。但是,仍可以在组中创建项目。
用户的项目限制
您可以编辑特定用户,并更改该用户在其个人命名空间中可创建的最大项目数量:
- 在左侧边栏底部,选择 管理员。
- 选择 概览 > 用户。
- 从用户列表中选择一个用户。
- 选择 编辑。
- 增加或减少 项目限制 值。
最大附件大小
GitLab 评论和回复中附件的最大文件大小为 100 MB。 要更改最大附件大小:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 通过更改 最大附件大小 (MiB) 中的值来增加或减少。
如果选择的大小大于 Web 服务器的配置值,您可能会收到错误。有关更多信息,请参阅故障排除部分。
对于 GitLab.com 仓库大小限制,请参阅账户和限制设置。
最大推送大小
您可以更改实例的最大推送大小:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 通过更改 最大推送大小 (MiB) 中的值来增加或减少。
对于 GitLab.com 推送大小限制,请参阅账户和限制设置。
仓库大小限制
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
GitLab 实例中的仓库可能会快速增长,特别是如果您使用 LFS。它们的大小可能会呈指数级增长,迅速消耗可用存储空间。为防止这种情况发生,您可以为仓库大小设置硬限制。此限制可以全局设置、按组设置或按项目设置,其中项目限制具有最高优先级。
仓库大小限制适用于私有和公共项目。它包括仓库文件和 Git LFS 对象(即使存储在外部对象存储中),但不包括:
- Artifacts
- Containers
- Packages
- Snippets
- Uploads
- Wikis
存在许多需要设置仓库大小限制的用例。例如,考虑以下工作流程:
- 您的团队开发需要在应用程序仓库中存储大文件的应用程序。
- 尽管您已为项目启用 Git LFS,但您的存储空间已显著增长。
- 在超出可用存储空间之前,您为每个仓库设置了 10 GB 的限制。
在 GitLab Self-Managed 和 GitLab Dedicated 上,只有 GitLab 管理员可以设置这些限制。将限制设置为 0 表示没有限制。对于 GitLab.com 仓库大小限制,请参阅账户和限制设置。
这些设置可以在以下位置找到:
- 每个项目的设置:
- 从项目主页,转到 设置 > 通用。
- 在 命名、主题、头像 部分填写 仓库大小限制 (MiB) 字段。
- 选择 保存更改。
- 每个组的设置:
- 从组主页,转到 设置 > 通用。
- 在 命名、可见性 部分填写 仓库大小限制 (MiB) 字段。
- 选择 保存更改。
- GitLab 全局设置:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制 部分。
- 填写 每个仓库的大小限制 (MiB) 字段。
- 选择 保存更改。
新项目的首次推送(包括 LFS 对象)会检查大小。如果它们的大小总和超过允许的最大仓库大小,则推送会被拒绝。
检查仓库大小
要确定项目是否接近其配置的仓库大小限制:
- 查看您的存储使用情况。 仓库大小包括 Git 仓库文件和 Git LFS 对象。
- 将当前使用情况与您配置的仓库大小限制进行比较,以估算剩余容量。
您还可以使用 Projects API 检索仓库统计信息。
要减小仓库大小,请参阅减小仓库大小的方法。
会话持续时间
自定义默认会话持续时间
您可以更改用户在没有活动的情况下可以保持登录的时间长度。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 填写 会话持续时间(分钟) 字段。
将 会话持续时间(分钟) 设置为
0会破坏您的 GitLab 实例。有关更多信息,请参阅 issue 19469。 - 选择 保存更改。
- 重启 GitLab 以应用更改。
对于 GitLab Dedicated,提交 支持工单 以请求重启您的实例。
如果启用了记住我,用户的会话可以无限期保持活动状态。
有关详细信息,请参阅用于登录的 cookies。
设置会话从创建日期起过期
默认情况下,会话在会话变为不活动后的一定时间后过期。相反,您可以配置会话在创建后的一定时间后过期。
当会话持续时间达到时,会话结束,用户将被登出,即使:
- 用户仍在主动使用会话。
- 用户在登录时选择了记住我。
- 在左侧边栏底部,选择 管理员区域。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 选中 从创建日期起使会话过期 复选框。
会话结束后,会提示用户再次登录。
配置记住我选项
用户可以在登录时选择 记住我 复选框。当从特定浏览器访问时,他们的会话将无限期保持活动状态。出于安全或合规目的,关闭此设置可使会话过期。关闭此设置可确保用户的会话在您自定义会话持续时间时设置的不活动分钟后过期。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 选中或清除 记住我 复选框以打开或关闭此设置。
自定义启用 2FA 时 Git 操作的会话持续时间
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed
此功能的可用性由功能标志控制。有关更多信息,请参阅历史记录。此功能尚未准备好用于生产环境。
GitLab 管理员可以选择自定义启用 2FA 时 Git 操作的会话持续时间(以分钟为单位)。默认值为 15,可以设置为 1 到 10080 之间的值。
要设置这些会话有效的时长限制:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制 部分。
- 填写 启用 2FA 时 Git 操作的会话持续时间(分钟) 字段。
- 选择 保存更改。
允许顶级组所有者创建服务账户
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
默认情况下,只有管理员可以创建服务账户。您可以配置 GitLab 以允许顶级组所有者创建服务账户。
先决条件:
- 您必须具有管理员访问权限。
要允许顶级组所有者创建服务账户:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 在 服务账户创建 下,选中 允许顶级组所有者创建服务账户 复选框。
- 选择 保存更改。
要求新的访问令牌设置过期日期
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
先决条件:
- 您必须是管理员。
您可以要求所有新的访问令牌设置过期日期。此设置默认开启,适用于:
- 非服务账户用户的个人访问令牌。
- 组访问令牌。
- 项目访问令牌。
对于服务账户的个人访问令牌,请使用应用程序设置 API 中的 service_access_tokens_expiration_enforced 设置。
要要求新的访问令牌设置过期日期:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 选中 个人/项目/组访问令牌过期 复选框。
- 选择 保存更改。
当您要求新的访问令牌设置过期日期时:
- 用户必须设置不超过新访问令牌允许生命周期的过期日期。
- 要控制最大访问令牌生命周期,请使用限制访问令牌生命周期设置。
个人访问令牌前缀
您可以指定个人访问令牌的前缀。您可以使用前缀更快地查找令牌,或与自动化工具一起使用。
默认前缀是 glpat-,但管理员可以更改它。
默认情况下,密钥推送保护和流水线密钥检测不会检测自定义前缀。自定义前缀可能导致漏报增加。要在流水线密钥检测规则集中使用自定义实例前缀,请考虑扩展流水线配置。
设置前缀
要更改默认全局前缀:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制 部分。
- 填写 个人访问令牌前缀 字段。
- 选择 保存更改。
您还可以使用设置 API 配置前缀。
实例令牌前缀
此功能的可用性由功能标志控制。有关更多信息,请参阅历史记录。此功能可用于测试,但尚未准备好用于生产环境。
您可以设置一个自定义前缀,该前缀会添加到您的实例上生成的所有令牌之前。
自定义令牌前缀仅适用于以下令牌:
先决条件:
- 您必须具有对实例的管理员访问权限。
要设置自定义令牌前缀:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制 部分。
- 在 实例令牌前缀 字段中,输入您的自定义前缀。
- 选择 保存更改。
令牌前缀的好处
使用自定义令牌前缀提供以下好处:
- 使您的令牌独特且可识别。
- 帮助在安全扫描期间识别泄露的令牌。
- 减少不同实例之间令牌混淆的风险。
限制访问令牌的生命周期
- Tier: Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
扩展的最大允许生命周期限制的可用性由功能标志控制。有关更多信息,请参阅历史记录。GitLab Dedicated 上不提供此功能标志。
用户可以选择为访问令牌指定最大生命周期(以天为单位),这包括个人、组和项目访问令牌。 此生命周期不是必需的,可以设置为大于 0 且小于或等于以下任意值:
- 默认为 365 天。
- 如果您启用
buffered_token_expiration_limit功能标志,则为 400 天。此扩展限制在 GitLab Dedicated 上不可用。
如果此设置留空,访问令牌的默认允许生命周期为:
- 默认为 365 天。
- 如果您启用
buffered_token_expiration_limit功能标志,则为 400 天。此扩展限制在 GitLab Dedicated 上不可用。
访问令牌是以编程方式访问 GitLab 所需的唯一令牌。但是,具有安全要求的组织可能希望通过要求这些令牌定期轮换来强制执行更多保护。
设置生命周期
只有 GitLab 管理员可以设置生命周期。留空表示没有限制。
要设置访问令牌有效的生命周期:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制 部分。
- 填写 访问令牌的最大允许生命周期(天) 字段。
- 选择 保存更改。
设置访问令牌生命周期后,GitLab:
- 对新的个人访问令牌应用该生命周期,并要求用户设置过期日期,且日期不晚于允许的生命周期。
- 三小时后,撤销没有过期日期或生命周期超过允许生命周期的旧令牌。给予三小时时间以允许管理员在撤销生效之前更改允许的生命周期或移除它。
限制 SSH 密钥的生命周期
- Tier: Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
扩展的最大允许生命周期限制的可用性由功能标志控制。有关更多信息,请参阅历史记录。GitLab Dedicated 上不提供此功能标志。
用户可以选择为 SSH 密钥指定生命周期。 此生命周期不是必需的,可以设置为任意天数。
SSH 密钥是用户访问 GitLab 的凭据。但是,具有安全要求的组织可能希望通过要求这些密钥定期轮换来强制执行更多保护。
设置生命周期
只有 GitLab 管理员可以设置生命周期。留空表示没有限制。
要设置 SSH 密钥有效的生命周期:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制 部分。
- 填写 SSH 密钥的最大允许生命周期(天) 字段。
- 选择 保存更改。
设置 SSH 密钥生命周期后,GitLab:
- 要求用户在新的 SSH 密钥上设置不超过允许生命周期的过期日期。最大允许生命周期为:
- 默认为 365 天。
- 如果您启用
buffered_token_expiration_limit功能标志,则为 400 天。此扩展限制在 GitLab Dedicated 上不可用。
- 对现有的 SSH 密钥应用生命周期限制。没有过期或生命周期大于最大值的密钥将立即失效。
当用户的 SSH 密钥失效时,他们可以删除并重新添加相同的密钥。
用户 OAuth 应用程序设置
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
先决条件:
- 您必须是管理员。
用户 OAuth 应用程序设置控制用户是否可以注册应用程序以使用 GitLab 作为 OAuth 提供程序。此设置影响用户拥有的 OAuth 应用程序,但不影响组拥有的 OAuth 应用程序。
要打开或关闭 用户 OAuth 应用程序 设置:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制 部分。
- 选中或清除 用户 OAuth 应用程序 复选框。
- 选择 保存更改。
OAuth 授权
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
先决条件:
- 您必须是管理员。
OAuth 授权设置控制用户是否可以使用 OAuth 资源所有者密码凭据流在没有客户端凭据的情况下授权自己。
要打开或关闭此设置:
- 在左侧边栏的 设置 下,选择 管理员区域。
- 选择 OAuth。
- 选择 OAuth 授权。
- 选中或清除 允许用户在没有 OAuth 客户端凭据的情况下使用资源所有者密码凭据流 复选框。
- 选择 保存更改。
禁用用户配置文件名称更改
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
为了保持审计事件中用户详细信息的完整性,GitLab 管理员可以防止用户更改其配置文件名称。
为此:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 选中 防止用户更改其配置文件名称。
选中后,GitLab 管理员仍可以在管理员区域或 API 中更新用户名。
防止用户创建组织
- Status: Experiment
在 GitLab Self-Managed 上,默认情况下此功能不可用。要使其可用,管理员可以启用名为 ui_for_organizations 的功能标志。在 GitLab.com 和 GitLab Dedicated 上,此功能不可用。此功能尚未准备好用于生产环境。
默认情况下,用户可以创建组织。GitLab 管理员可以防止用户创建组织。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 清除 允许用户创建组织 复选框。
防止新用户创建顶级组
默认情况下,新用户可以创建顶级组。GitLab 管理员可以防止新用户创建顶级组:
- 在 GitLab UI 中,使用本节中的步骤。
- 使用应用程序设置 API。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 清除 允许新用户创建顶级组 复选框。
防止非成员创建项目和组
默认情况下,具有 Guest 角色的用户可以创建项目和组。GitLab 管理员可以防止此行为:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 清除 允许具有 Guest 及以下角色的用户创建组和个人项目 复选框。
- 选择 保存更改。
防止用户将其配置文件设为私有
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
默认情况下,用户可以将其配置文件设为私有。GitLab 管理员可以禁用此设置,要求所有用户配置文件都为公开。此设置不影响内部用户(有时称为"机器人")。
要防止用户将其配置文件设为私有:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 清除 允许用户将其配置文件设为私有 复选框。
- 选择 保存更改。
当您关闭此设置时:
- 所有私有用户配置文件都将变为公开。
- 默认将新用户的配置文件设为私有的选项也会关闭。
当您重新启用此设置时,将选择用户的先前设置的配置文件可见性。
默认将新用户的配置文件设为私有
默认情况下,新创建的用户具有公开配置文件。GitLab 管理员可以设置新用户默认具有私有配置文件:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 选中 默认将新用户的配置文件设为私有 复选框。
- 选择 保存更改。
如果允许用户将其配置文件设为私有被禁用,则此设置也被禁用。
防止用户删除其账户
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
默认情况下,用户可以删除自己的账户。GitLab 管理员可以防止用户删除自己的账户:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 通用。
- 展开 账户和限制。
- 清除 允许用户删除自己的账户 复选框。
故障排除
- Offering: GitLab Self-Managed
413 Request Entity Too Large
在 GitLab 中向评论或回复附加文件时,最大附件大小可能大于 Web 服务器允许的值。
要在 Linux 包 安装中将最大附件大小增加到 200 MB:
-
将此行添加到
/etc/gitlab/gitlab.rb:nginx['client_max_body_size'] = "200m" -
增加最大附件大小。
此仓库已超出其大小限制
如果您在 Rails 异常日志 中收到间歇性推送错误,如下所示:
Your push to this repository cannot be completed because this repository has exceeded the allocated storage for your project.Housekeeping 任务可能导致您的仓库大小增长。要解决此问题,以下任一选项都有助于短期到中期: