我已经将所有公司的Git存储库移至GitHub,现在我想将员工添加到项目中。由于大多数员工已经拥有个人GitHub帐户,所以我想知道是否应该要求他们创建一个工作GitHub帐户。我之所以这样做,是为了减少未经授权访问我们代码库的可能性,因为他们的个人帐户可能会通过他们在网站上的个人活动而得到很好的宣传,从而增加了有针对性的攻击机会。此外,如果他们的个人帐户遭到入侵,这并不意味着劫机者可以访问整个公司代码。由于这将带来为员工维护两个帐户的负担,我想知道这是否是正确的方法,甚至是否有意义。我很想听听您对此的意见。

更新
感谢所有有用的见解。由于问题的主观性质,并且我从几个不同的答案中取了最好的分,因此我不会将答案设置为可接受。

我决定以这种方式前进:提醒员工,出于实际原因,必须将与工作相关的GitHub电子邮件通知发送到其工作电子邮件帐户。因此,创建工作GitHub帐户会更有意义。如果他们愿意使用其个人GitHub帐户并将其连接到其工作电子邮件帐户,那就很好。无论如何,员工必须以书面形式同意与使用GitHub相关的许多条件。这些与帐户安全性相关:使用不与任何其他帐户一起使用的安全随机密码生成器选择安全密码,不通过非由其拥有或管理的计算机访问GitHub等。最终,员工必须自己决定工作帐户是否对他们更有意义。

评论

工作帐户同样容易被盗用,不是吗?
GitHub在2012年8月添加了按组织的电子邮件路由。github.com/blog/1204-notifications-stars

@BorisYankov,如果您没有任何公共活动并且登录名与您的姓名没有任何关系,那么更难以更改工作帐户。默默无闻是安全性,但可以肯定会有所帮助。您可以创建一个工作流,将github发送的所有电子邮件也发送给开发团队负责人,等等。另一点:作为工作帐户,您可以决定甚至进行尽职调查,审核帐户并查看它们是否符合约定。在公司和员工之间。第三个重要点:用户辞职后,就可以接管他的帐户。

个人拥有多个帐户违反GitHub服务条款。 “一个人或法人实体不得开设多个免费帐户。” help.github.com/articles/github-terms-of-service

关于这最后的评论。检查条款,指向A.7。那么,如果您拥有自己的个人帐户,而您的公司代表您创建了另一个帐户并使用它,将会发生什么情况呢?即使您没有记错,您的个人帐户也会被终止吗?

#1 楼

如果有好处,那只会是痛苦的。但是没有什么比痛苦和毫无意义的糟透了。只需拥有一个个人帐户。有两个原因:


Github在其组织中具有非常好的访问控制。如果员工离职,您可以立即删除其访问权限。如果他们拥有公司帐户,则必须以某种方式收回该帐户,以获得规定的利益。实际上,您可能只是删除帐户访问权限,就像他们拥有个人帐户一样。
拥有多个帐户很痛苦。登录和注销帐户之间会很痛苦,并且在使用不同帐户时会添加注释,关注和所有社交内容。

参考文献:我制作了一个具有GitHub集成的CI服务器,因此我了解很多测试帐户,而我已经通过各种奇怪的配置与客户进行了交谈,包括单独的工作帐户和个人帐户。它总是会带来麻烦。

#2 楼

贵公司的代码在公共还是私有存储库中?如果他们(或至少一些)是公开的,并且您允许您的员工使用自己的GitHub帐户,那么这将激励他们编写好的代码。他们的名字将在字面上公开附加。但是,我假设您的所有存储库都是私有的。

总体而言,您似乎希望员工的帐户在整个GitHub上不公开可见。不幸的是,他们通过出售GitHub Enterprise赚钱,所以我想这就是为什么他们不允许您为组织创建私人帐户的原因之一。在这两种情况下,在选择一个非常社交的网站来托管您的存储库之后,拥有(基本上)锁定的工作帐户都是违反直觉的。

让我们想象您确实为员工设置了工作帐户。您会限制他们如何使用这些帐户吗?您是否允许他们出于工作目的向非工作项目贡献代码?如果是这样,那么他们的帐户就会公开显示出来,让您回到最初的顾虑。您可以只允许他们用他们的个人帐户进行捐款,但随后却给他们带来了后勤上的痛点。就个人而言,我鼓励员工自己为其他项目贡献代码。这不仅增强了他们的信心,还使他们获得了宝贵的经验并树立了信誉。

无论如何,我认为拥有工作账户是不值得的。 GitHub界面使您可以轻松控制谁有权访问什么,因此删除访问权很简单。我也不认为拥有单独的帐户真的比GitHub接口已经在个人项目和工作项目之间“划清了界限”。

另外,请记住,随着公司的发展,您打算如何应对。从管理的角度来看,您设置的策略现在是否可以扩展?现在管理5个帐户可能很好,但是当您成长为20或50个帐户时会发生什么呢?但是,一旦达到这一点,也许GitHub Enterprise将是一个易于解决的解决方案。在这种情况下,我将考虑确定GitHub帐户是否可以迁移到GitHub Enterprise安装。如果是这样,我可以看到这是拥有工作帐户的一个积极原因。

评论


好点,谢谢。是的,存储库是私有的。关于在工作中的非工作项目,我一点也不担心。这只是帐户安全性。

–fiorenti
2012年6月4日18:12

我已经删除了该评论,因为它不相关。

–杰里米·海勒(Jeremy Heiler)
2012年6月5日下午0:07

#3 楼

并非不可能,这实际上是一个不错的主意。

令人遗憾的是,您需要计划在公司生命中某个时刻离开公司的员工。那时您将如何从公司的存储库中提取他们的个人帐户?

如果员工的条件不好,您将怎么办?在理想的世界中,一切都会保持专业,并且公司与前员工之间不会有任何仇恨。对于不太理想的情况,您应该谨慎计划。

保留两个帐户虽然很麻烦,但是您的员工应该欢迎这个机会。它为公司和公司之间提供了一条更清晰的界线。

编辑:这里值得关注的是,员工对X,Y,Z等项目的个人贡献之间存在明显的区分。以及他们对您公司产品的付费工作。使用单独的工作帐户有助于提供必要的描述,以识别谁拥有什么知识产权和相关版权。

例如,如果员工使用其个人帐户并为公司和Project X捐款,您是否确定员工在这些时间点所扮演的角色?是X代表您的公司还是由您自己决定?员工或公司是否拥有授予X的作品的版权?就此而言,如果您允许公司的外部贡献,您如何区分员工是雇员还是自愿性捐助?

从广义上讲,您有雇员通过为其他项目做出贡献来建立代表公司的声誉。该员工离职后,您如何指示个人用户帐户不再与您的公司关联?如果不明确描述特定帐户的用途,则会发生严重的品牌问题。

当您开始考虑潜在的情况时,很容易掉落所有权,品牌和版权问题。使用单独的工作帐户有助于消除这种歧义。该公司需要能够以其名义提出的捐款。

这与将用户帐户分离出来的技术无关,而是法律问题可能使您绊倒。 >
请注意,如果您的公司的产品都在许可的许可下全部以开源形式发布,并且/或者您根本不担心潜在的品牌问题,那么这可能是一个有争议的问题。
(Paul的提示) Biggar要求进行此编辑)

评论


谢谢,由于上述原因,如果我还是一名员工,我也欢迎这项政策。 GitHub的界面使您可以轻松地从私有存储库中删除用户的访问权限。我还假设,如果员工辞职很差,在大多数情况下,如果他愿意,他将有足够的时间进行损害赔偿。

–fiorenti
2012年6月4日18:19

我不明白这个答案。 GitHub具有细粒度的访问控制。员工离职后,您可以从组织中删除其访问权限。这有什么难的?实际上,删除他们的个人帐户比“收回”他们的工作帐户要容易得多。

– Paul Biggar
2012年6月4日23:33

@fiorenti:大概,用户还将对代码进行完整的签出,无论代码在何处托管,都将发生!

– Paul Biggar
2012年6月5日在0:37



@PaulBiggar-我更新了回复,以记录涉及的一些更广泛的问题。这主要是一个法律归属问题,因此我建议您使用单独的帐户。我已经看到许多案例,如果不将个人账户与工作账户分开,会在事后造成严重的头痛。每个人的MMV以及每种情况都必须根据公司的精神进行检查。

–user53019
2012年6月5日14:36

感谢您指出可能遇到的潜在法律问题雷区

–RidiculousRichard
19年5月10日在7:32

#4 楼

由于每个人似乎都对缺乏雇主将两者分开的需求表示同意,因此,这是我短暂的经验,曾尝试将我的个人帐户用于专业项目和在工作中进行的开源贡献。

为了使上下文更完整:我没有问到任何有关帐户的信息,实际上我的工作场所中的大多数人都不知道GitHub。我只是获得了绿灯,就可以将我将要从事的项目开源,并且花费了最少的工作,即使用了我的个人帐户。

从员工的角度来看,我真正讨厌的一件事是:在个人电子邮件中收到有关工作内容的通知。

从这一观察中,我意识到这是公然打破专业/个人障碍:如果我想为在我的休假期间,我仍然可以从我的工作项目中获得所有更新…而且这可能会使外部贡献者感到困惑,他们可能会在不知道您退出该项目的情况下与您联系。

然后,您的个人声誉可以从您的工作贡献中获得,这一点可以找到一个平衡点。但是话又说回来,如果您的名字与一个糟糕的项目有关,那可能恰恰相反。

最后,从雇主的角度提出问题,并考虑所有其他答案:我会说使用工作专用帐户进行强制执行可能没有多大意义。但是您不应该禁止这样做,以便希望提高个人障碍的员工可以这样做,并可能暗示这些风险……?


作为附带说明,关于安全性,因为在其他答案中似乎有些容易解雇的原因:

当然,“工作”帐户在密码方面不会比“个人”帐户安全得多。但是,当您使用GitHub时,可以使用SSH密钥进行推送。而且该密钥通常位于用户的会话中...因此,个人帐户可以通过简单的个人计算机窃取(无需密码知识)来破坏所有工作存储库,而专用工作帐户则可能仅在工作机器上拥有其密钥,因此物理上更安全(希望如此)。

评论


+1:我没想到的两点:电子邮件和SSH密钥。虽然在GitHub上有单独的电子邮件是一个问题,但是您可以为您的帐户设置多个SSH密钥。

–杰里米·海勒(Jeremy Heiler)
2012年6月5日在17:01



@JeremyHeiler“在GitHub上有单独的电子邮件是一个问题”的确切含义是什么?一旦您将它们添加到您的个人资料中,我会使用三种不同的电子邮件(旧的,当前的个人的,工作的),GitHub将它们与您的帐户毫无问题地匹配:)

– MattiSG
2012年6月5日17:14



我指的是这个要点。您是说如果您将工作电子邮件放在工作计算机上的git.config中并将其添加到您的帐户中,所有与工作相关的通知都将发送到您的工作电子邮件中?如果是这样,那就太好了!

–杰里米·海勒(Jeremy Heiler)
2012年6月5日17:20

@JeremyHeiler哦,不,我们对电子邮件的“问题”有一个小小的误解:)确实,就像我在回答中所说的那样,您总是收到通知到您的“主”(通常是个人)帐户的通知。但这不是“问题”,因为您需要为每个提交地址提供一个帐户:您可以将任意数量的电子邮件与您的帐户相关联,但是只有一封电子邮件会从您的帐户中收到通知。

– MattiSG
2012年6月5日17:23

GitHub在2012年8月添加了按组织的电子邮件路由。github.com/blog/1204-notifications-stars/…

– MPV
19-2-18在13:44



#5 楼

我会投票“否”。对于您的开发人员而言,这是相当麻烦的事情,并且可以通过晦涩难懂的方式为您提供安全性:如果有人积极地针对您的开发人员,那么会有很多其他攻击手段可以使您获得代码。

另外,作为一家初创公司,除非您有很多神奇的秘密调味型算法在起作用,否则有人得到您的代码将很尴尬,可怕,令人讨厌,但不应导致重大后果。竞争优势(谁可以合法使用您的代码?)或导致您倒闭。

这么低的订单概率与开发人员的生产率?我会提高开发人员的工作效率,但这就是我的计算。 :)

#6 楼

我想这应该是员工的选择。我要说的一件事是,如果他们不想,不要强迫他们使用他们的个人github帐户。我当时在使用GitHub的公司工作,虽然这不是必需条件,但我个人想创建一个单独的帐户。主要原因是为了保护我的个人项目。我不想公司试图说我的一个个人项目是他们的,因为它是在他们的共同项目中使用的相同的github帐户下的(不确定是否会在法庭上成立,但是我没有太大的信心)在法律体系中涉及到这样的事情)。我认为将这些干净分开是一件好事。

#7 楼

我们正在我们公司中做到这一点。我不想开始讨论“什么是更安全的,github或表下的服务器,每个人都具有root用户访问权限,不确定备份是否正常工作,等等”。我们的方法是:


每个开发人员都必须创建一个与他的个人github帐户无关的新帐户
,它应该使用公司的电子邮件。
它应符合我们的安全规则(登录名和密码要求)。
它们不能显示/进行任何公共活动。
这是公司财产。不是他/她的帐户。
所有帐户都与公司相关联,名称也随机。也没有任何公共活动。


评论


您无法强制执行密码复杂性要求,因为您无法验证GitHub密码,为什么还要密码呢?

–猎犬
13年5月21日在12:44



很好,您是说,如果您不能从技术上强制执行某项操作,那么您就不会强制执行。我的意思是,如果一名员工阅读了安全策略,并且在知道后果的情况下对其进行了签名,那么它就是一项强制措施。

–副总裁。
13年5月21日在13:38

我是说您无法知道未完成任何操作,因为您无法验证员工创建的GitHub帐户的密码。

–猎犬
13年5月21日在14:41

好吧,例如,如果某个帐户被盗用,并且我们通过某种方式发现密码为abc123,我们可以“负责”该员工。我在这里没有问题。还有一点:我在哪里写的?我写了它必须(现在我更新为应该)...

–副总裁。
13年5月21日在15:47



必须在同意该名称也是他们的名字的前提下调整此方法,并且您不会以他们的名字采取任何行动。

–迈克尔
17年6月6日在15:32

#8 楼

我认识到此问询已有几年的历史,因此也许以前没有提供,但是他们在“用户帐户与组织帐户之间的差异”中特别指出:


一个以上的用户帐户(例如供个人使用和商业用途的帐户),但您只需要一个帐户。


GitHub已构建了不错的工具,可以按存储库打开/关闭通知,等等。似乎将个人/工作结合在一起最有意义。

评论


那票选票是关于什么的,是吗?我认为这是一个很好的答案。

– John McGehee
18-09-20在21:42

#9 楼

人们尚未信任基于云的源服务器。 Github拥有许多与之签约的新时代网络公司,但事实是,大多数人都有自己的服务器来维护源代码。以我的经验,大多数都使用Clear-case或SVN。 Git尚未适应企业环境。甚至公司邮件服务器在公司办公场所之外也未受到真正的赞赏。

评论


我目前在一家服务公司工作,接受过Git的培训,他们的大多数客户(例如大公司)正在从ClearCase迁移,或者准备在下一个项目中这样做……

– MattiSG
2012年6月5日在16:34