疑问:为什么 Github 组织管理者可以删除组员在组织内创建的仓库? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sorakylin
V2EX    GitHub

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

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

    额,可能是个傻问题吧…… 但我确实很疑惑。
    我试了下,我作为一个 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 它的项目,个人项目就个人开发。
    rb6221
        5
    rb6221  
       2022-06-03 18:56:04 +08:00
    正常情况下所有者=创建者,但是这里所有者是 org ,他不能创建仓库,所以创建者才是组员。
    所以问题的核心是为什么创建这个动作要交给组员,而不是为什么创建者不能控制仓库。
    其实正常的解决思路是 并不应该让组员创建了仓库以后加入 org ,而是直接应该支持 org 创建仓库。
    KagurazakaNyaa
        6
    KagurazakaNyaa  
       2022-06-03 19:00:28 +08:00
    @janus77 实际上 org 是可以创建仓库的,它是个 namespace ,有权限的用户就可以在它下面创建 repo
    DoveAz
        7
    DoveAz  
      nbsp;2022-06-03 19:03:38 +08:00 via Android
    我觉得很合理啊
    rb6221
        8
    rb6221  
       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     Solana     2836 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 14:17 PVG 22:17 LAX 06:17 JFK 09:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86