jjzjj

windows - Gitlab 私有(private)项目接受任何人的推送

coder 2024-06-11 原文

我认为我在配置本地 git 时犯了一个错误,但我在任何地方都看不到任何东西。这让我非常害怕,因为它允许使用这台计算机的任何人完全访问我所有的个人项目。我希望我只是做错了什么,并且可以安全地修复它。这是发生了什么:

  • 我使用我的根帐户 (meperso@dot.com) 通过浏览器登录我个人的 GitLab gitlab.somewhere.com。 (v8.5.5)
  • 我创建了一个新项目“bundle”并将其设置为私有(private)。
  • 我在工作(Windows 7,以 me.pro 身份登录),但决定检查克隆和推送的项目权限。
  • 令人惊讶的是,克隆过程(通过 https)完成了,预期的消息是“您的 git 存储库似乎是空的”。我开始担心,这不应该是可能的,我的项目是私有(private)的,还没有允许任何帐户。
  • 我决定进一步 push 它。我在我的本地目录中创建一个文件,git 添加它,提交并推送到源。一切正常。它甚至没有询问我的用户名/密码。在提交历史记录中,在 GitLab Web 界面中,提交由 me.pro@local 编写,Windows 7 登录名在我的 gitlab 上没有任何授权项目。

附加信息: 我正在为公司项目使用另一个托管在本地网络中的 Gitlab。但是我今天没有登录。

我需要我的一些个人项目来获取代码片段,但我不希望使用这台计算机(经常发生)的人能够在无需身份验证的情况下推送到源。

这是我在任何项目之外输入的 git config --list 的结果。

PS C:\> git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true
credential.helper=manager
PS C:\>

如您所见,甚至没有配置全局用户名。

编辑 1
Windows Credential M管理器确实存储了一些凭据。通过运行 rundll32.exe keymgr.dll, KRShowKeyMgr 并在 gitlab.somewhere.com 上删除与我的个人 Gitlab 相关的行,我能够将它们从 WCM 中删除。
再次需要身份验证,这解决了部分问题。

但 GitLab 仍然接受了来自 me.pro@local 的推送,尽管该项目是私有(private)的,没有成员,所有者是 meperso@dot.com。
问题依然存在...

奖励问题:如何防止 WCM 存储特定项目的凭据?
答案:How do I disable git's credential helper for a single repository?
TL;DR:在您的项目文件夹/.git/config 中,将 helper =(空字符串)放入 [credential] 部分(或创建它)。需要 git 2.9+。

编辑 2
我有一个不应该提交的理论:
在 WCM 中,还有我的项目所有者帐户。提交已使用这些凭据进行身份验证,但名称是我的 Windows 用户。 我无法验证该理论,在怀疑这一点之前,我删除了经理的凭据。

最佳答案

您设置了 credential.helper=manager。这是 Git credential manager for windows我怀疑事情是管理您的凭据。从位于 Windows 当前登录用户文件夹中的 .gitconfig 文件中删除 [credential] block 中以 helper 开头的所有行。

关于windows - Gitlab 私有(private)项目接受任何人的推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41343970/

有关windows - Gitlab 私有(private)项目接受任何人的推送的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  3. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  4. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  5. ruby-on-rails - link_to 不显示任何 rails - 2

    我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article

  6. ruby-on-rails - RSpec:避免使用允许接收的任何实例 - 2

    我正在处理旧代码的一部分。beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)endRubocop错误如下:Avoidstubbingusing'allow_any_instance_of'我读到了RuboCop::RSpec:AnyInstance我试着像下面那样改变它。由此beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)end对此:let(:sport_

  7. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  8. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  9. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  10. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

随机推荐