V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sorakylin
V2EX  ›  GitHub

疑问:为什么 Github 组织管理者可以删除组员在组织内创建的仓库?

  •  
  •   sorakylin · 2022-06-03 18:13:49 +08:00 · 4160 次点击
    这是一个创建于 922 天前的主题,其中的信息可能已经有所发展或是发生改变。

    额,可能是个傻问题吧…… 但我确实很疑惑。
    我试了下,我作为一个 Github Organization 的所有者可以随便的删除我组里成员创建的仓库,哪怕这个仓库和我半毛钱关系都没有。


    假设以下场景:
    你加入了某个开源爱好者的组织, 然后以组织作为所有者创建了代码仓库(或者是将自己原有的仓库迁移到了组织里来)。

    有一天你得罪了组织的 Owner ,或者是他心情不好突然觉得不想让你的仓库待在这里。
    所以他直接一个删除仓库, 你的仓库就没了,像是 Star 啊、贡献者关系啊、commit log 啊都 balabal 的全部化为乌有。

    会不会有点不太好?


    我觉得,在一个组织内,如果是管理员 /Owner 自己创建的仓库,直接删了就删了。
    但如果是成员创建的仓库,组织 Owner 只能将这个仓库踢出变为个人所有才是更安全的吧?


    还是说默认个人需要承受仓库被删除的风险,才能加入组织。
    没搞得太懂这个逻辑……

    29 条回复    2022-07-30 20:07:30 +08:00
    admpubcom
        1
    admpubcom  
       2022-06-03 18:23:27 +08:00 via iPhone
    确实是个傻问题
    arch9999
        2
    arch9999  
       2022-06-03 18:27:21 +08:00
    你作为一个组织的所有者,也能说出来以组织名义创建的仓库和你无关?
    chloerei
        3
    chloerei  
       2022-06-03 18:31:48 +08:00 via iPhone   ❤️ 11
    无法理解怎么会有这个问题。
    clf
        4
    clf  
       2022-06-03 18:42:33 +08:00
    你可以选择 fork 它的项目,个人项目就个人开发。
    janus77
        5
    janus77  
       2022-06-03 18:56:04 +08:00
    正常情况下所有者=创建者,但是这里所有者是 org ,他不能创建仓库,所以创建者才是组员。
    所以问题的核心是为什么创建这个动作要交给组员,而不是为什么创建者不能控制仓库。
    其实正常的解决思路是 并不应该让组员创建了仓库以后加入 org ,而是直接应该支持 org 创建仓库。
    XiLingHost
        6
    XiLingHost  
       2022-06-03 19:00:28 +08:00
    @janus77 实际上 org 是可以创建仓库的,它是个 namespace ,有权限的用户就可以在它下面创建 repo
    DoveAz
        7
    DoveAz  
       2022-06-03 19:03:38 +08:00 via Android
    我觉得很合理啊
    janus77
        8
    janus77  
       2022-06-03 19:06:16 +08:00
    @XiLingHost #6 那这样就比较合理了,组员选择将仓库加入 org 的那一刻也就是相当于给仓库添加了一个新管理员。也没人说管理员只能有一个。而且组员将仓库加入 org 也是获得了更多曝光的好处的,当然要让渡一部分权利出来。
    cnbatch
        9
    cnbatch  
       2022-06-03 19:10:23 +08:00   ❤️ 1
    考虑下这个场景:
    组织某个成员的 Github 账户被黑客盗取了密码,这个黑客浏览一番后发现组织的各个仓库都没什么感兴趣的内容,于是就开了个恶意玩笑,新建仓库,把一些黄图黄片放在仓库内,还设成了公开可见。弄好后,还准备在其他论坛、新闻网站广而告之,使这件事变成公共丑闻。
    而就在黑客创建仓库时,其中某个组织管理者刚好发现了异常情况。为了紧急灭火应该怎么做?一般人想到的都会是立即删了这个新仓库。
    如果组织管理者无法删除仓库,又不能强行转移 owner ,只能踢出去……好吧,这件事铁定变成公共丑闻。
    mysalt
        10
    mysalt  
       2022-06-03 19:15:29 +08:00
    因为组员把仓库创建在组织中。
    BeautifulSoap
        11
    BeautifulSoap  
       2022-06-03 19:20:39 +08:00   ❤️ 5
    "疑问:为什么 root 账号可以删除其他账号在电脑上创建的文件?"
    brsyrockss
        12
    brsyrockss  
       2022-06-03 19:58:17 +08:00
    借用你的话
    没搞得太懂这个逻辑……
    sorakylin
        13
    sorakylin  
    OP
       2022-06-03 20:12:56 +08:00
    @chloerei #3
    哈哈哈,我也是纠结了很久才问出了这个问题,毕竟这功能存在这么久了,也总有它的道理。
    但我想着想着就总感觉组织里的项目生杀大权交于组织 Owner 一个人手上,就像是自然人在企业中的所有创作都归于企业,可人和企业是存在劳动关系的。像这种面向普罗大众的功能很多都是公益性质、开源性质、爱好 /娱乐性质的,我总觉得和企业对标好像有点不太对劲,可能是我想多了吧。


    @cnbatch #10 可是踢出去的话不就和组织无关了吗,将其降级成了一个个人账号的仓库被盗事件,而他也确实是被盗了。
    再换一个角度的话,如果是 Owner 被盗了,Owner 又拥有这么高的权限,能够造成的危害与影响会更大吧。
    pengtdyd
        14
    pengtdyd  
       2022-06-03 20:41:18 +08:00
    组织权力大于一切,难道你想造反吗?
    binux
        15
    binux  
       2022-06-03 23:36:28 +08:00 via Android
    @sorakylin 你在公司里,以公司名义发布的产品,公司当然有杀生大权。你愿意,完全可以维持一个个人 fork
    newtype0092
        16
    newtype0092  
       2022-06-03 23:53:41 +08:00   ❤️ 2
    "但如果是成员创建的仓库,组织 Owner 只能将这个仓库踢出变为个人所有才是更安全的吧?"

    如果这个仓库变成了个人仓库,曾经在这个仓库里贡献过的其他组织成员不就哭了。。。
    lasuar
        17
    lasuar  
       2022-06-04 00:08:54 +08:00
    中出了个叛徒
    cybird
        18
    cybird  
       2022-06-04 00:45:14 +08:00
    哈?你们是个组织啊......
    wutiantong
        19
    wutiantong  
       2022-06-04 01:37:53 +08:00
    “有一天你得罪了组织的 Owner ,或者是他心情不好突然觉得不想让你的仓库待在这里。”

    —— 相对而言,这才是更荒谬的地方。
    cnbatch
        20
    cnbatch  
       2022-06-04 01:38:49 +08:00
    @sorakylin 真的跟组织无关?那就大意了。

    如果黑客发布的不是黄图,而是散布有关公司的谎言,例如什么“CEO 宣布辞职”、“我们的产品在发布二进制包时其实故意留了后门”、“某某经理其实是某某国家派来的间谍,我有证据如下”……之类的,那杀伤力可大可小,对于上市公司而言很可能一下子就股价下跌,连续发酵好几天。

    至于 Owner 账号被盗,就算权限方面实现了你所说的做法,杀伤力并不会有所减少,甚至更惨。比如被盗的 Owner 把黑客的各个小号弄进组织,踢走真正的员工,然后在这些小号里大批量发布假消息。公司的人重新夺回 Owner 账号后,却无法删除那些假消息,只能干瞪眼着急。
    cnbatch
        21
    cnbatch  
       2022-06-04 01:47:38 +08:00
    还有,对于以上这两种情况,就算把那些账号踢出去,黑客们、或者雇佣这群黑客的团体,还可以发布阴谋论说,“他们踢了这些人出去但却没有删除消息,显然是因为无法否认,并且管理层存在严重的内斗”,接着大说特说,那影响和危害只能更加严重。不要指望普通大众能懂 Github 的规则,他们甚至都未必听说过 Github 这个网站。z
    drackzy
        22
    drackzy  
       2022-06-04 02:34:11 +08:00
    权限就是这样设计的。
    msg7086
        23
    msg7086  
       2022-06-04 05:55:24 +08:00
    在 Org 里开的项目,归属于 Org 而不是个人。如果你把你的项目转移到一个 Org ,那就表示你认可把这个项目献给这个 Org 。如果以后因为各种原因 Org 决定违背你的意愿删除这个项目,你只能怪自己眼睛瞎了。
    flyqie
        24
    flyqie  
       2022-06-04 07:04:39 +08:00 via Android   ❤️ 1
    你不理解的原因,是因为你把 组织 的权限管理定位在了 开源爱好者组织。

    实际上,组织 的权限管理设计主要照顾到的是企业 /独立团队等商业化客户,这种客户一般不会存在你所谓的因为得罪 org owner 被 delete 掉仓库的假想情况。
    flyqie
        25
    flyqie  
       2022-06-04 07:09:52 +08:00 via Android
    奇怪。。好像刚才发的不可见了?

    你不理解的原因,是因为你把 组织 的权限管理定位在了 开源爱好者组织。

    实际上,组织 的权限管理设计主要照顾到的是企业 /独立团队等商业化客户,这种客户一般不会存在你假设的这种情况。
    sorakylin
        26
    sorakylin  
    OP
       2022-06-04 08:31:00 +08:00
    @flyqie #24 行,大概理解这个意思了,多谢。
    这么说之前是我想岔了,Org 这功能在设计的时候想的如果是主要照顾到企业 / 独立团队等商业化客户的话,如今这样子实现确实是没毛病。
    phithon
        27
    phithon  
       2022-06-04 09:18:32 +08:00
    个人项目也有一样的问题,比如你参与了其他人的项目,贡献了很多代码,但 owner 哪天不高兴直接把项目删了,你的贡献也一样没有了。
    whileFalse
        28
    whileFalse  
       2022-06-04 19:51:23 +08:00 via iPhone
    因为正确的用法是个人吧组织仓库 fork 出一份来然后通过 pr 协作。
    当然为了方便,有人可能会直接用组织仓库提交,那么问题也不是特别大,毕竟你本地总会有个克隆,线上删了本地还在
    kkeep
        29
    kkeep  
       2022-07-30 20:07:30 +08:00
    组织里并不是人人平等的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5345 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:52 · PVG 10:52 · LAX 18:52 · JFK 21:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.