2017年11月

拿到这本《Linux 二进制分析》,我不禁心生感慨。

对于软件逆向工程这门手艺来说,最难的便是入门。软件逆向不同于软件的编写。基于汇编语言的软件逆向将绝大多数的人拦在了门外。少部分人打开了这扇门,又为门后的贫瘠所震惊 —— 相关资料少且不系统。

一直以来, Windows 由于其在桌面端的广泛应用而不断受人关注,相关的书籍也不断出新。但随着移动端设备的逐渐崛起,*nix 系统占据了市场的主流。但是基于 *nix 的逆向开发一直都处在荒芜的状态,为少数人所掌握。现在,移动端设备成为新的安全隐患增长点,我们也为此忧心忡忡。于是,我们组织译者,翻译了这本 《Linux 二进制分析》 Learning Linux Binary Analysis

1、LCTT 的新台阶

Linux 二进制分析》是棣琦的译作,也是我们 Linux 中国审校的第一本书。在我看来,这是 Linux 中国 LCTT 翻译组的一个新的里程碑。

自 2013 年 9 月 LCTT 创立以来,已有 250 余位志愿者参与到我们的翻译组,累计翻译了近三千篇各种 Linux 相关的文章。但是直到这本《Linux 二进制分析》的出版,我们 LCTT 第一次真正意义上完成了一本书的翻译、校对、审核的工作。我们的工作上了一个新的台阶。

2、作者简介

Ryan O‘Neill,是一名在逆向工程、软件开发、安全防御和取证分析技术方面深有建树的计算机安全专家,曾就职于 Pikewerks、Leviathan 安全集团,最近在 Backtrace 担任软件工程师。

除了这本书以外,他之前还写了大量相关的论文,比如 “Modern day ELF Runtime infection via GlobalOffsetTable poisoning”、“Extending the ELF core file format for forensics snapshots”。丰富的经历和研究,使他在 ELF 二进制研究上有着超出前人的成就,这些成就,最终促成了这本《Linux 二进制分析》的出版。

3、译者简介

棣琦,本名张萌萌,是一个集美貌与智慧并存的程序媛。目前是百度研发工程师, 业余时间爱好翻译。当别人周末约会、逛街时,她选择了开启一段艰辛的翻译之旅,焚膏继晷大半年,一字一句的翻译、一行一行的校对。

Linux 二进制分析》不同于其他 Linux 技术书籍,国内和 Linux 二进制分析相关的图书、资 料十分的少,远不如其他方面的资料那般充盈,对于她来说,除了要对文章进行翻译,还要通读国内外的相关文献,以保证译文的翔实和准确。

棣琦在翻译……

此外,由于这本书内包含了大量的实战操作内容,她也需要花费大量的时间进行重复操作、验证,以确保书的内容可以被读者重新实践。

4、内容分享

这本书的内容详实,可以帮助读者快速建立起 Linux 二进制分析的整体框架,并且使用了大量的篇幅来介绍 ELF 文件格式,为读者打下良好的基础;并通过取自工作中不同场景下二进制分析的实战来帮助读者明晰二进制分析的重要性和效果,一方面可以让读者不至于只能读到枯燥无味的内容解读,另一方面,也让这本书成为安全工程师的“牛津词典”,在工作中遇到问题,可以翻到对应章节,重温操作、理念。

章节介绍

  • 第 1 章,Linux 环境和相关工具,简要介绍了会在本书中用到的 Linux 环境和相关的工具。
  • 第 2 章,ELF:二进制格式,帮助读者了解 ELF 文件格式
  • 第 3 章,Linux 进程追踪,教会读者使用 ptrace 系统调用读写进程内存并注入代码。
  • 第 4 章,ELF 病毒技术 - Linux/UNIX 病毒,介绍了 Linux 病毒的历史、病毒的工程化和围绕病毒进行的相关研究。
  • 第 5 章,Linux 二进制保护,解释了 ELF 二进制保护的基本原理。
  • 第 6 章,Linux 下的 ELF 二进制取证分析,通过解析 ELF 目标文件来研究病毒、后门和可疑的代码注入。
  • 第 7 章,进程内存取证分析,将会介绍如何解析进程的地址空间,以研究内存中的恶意软件、后门和可疑的代码注入。
  • 第 8 章,ECFS 一一扩展核心文件快照技术,是对 ECFS 这一用于深入进程内存取证分析的新开源产品的介绍。
  • 第 9 章,Linux /proc/kcore 分析,介绍了如何使用 /proc/kcore 进行内存分析来检测 Linux 内核中的恶意软件。

5、我对书的评价

在过去,安全工程师们想要学习 Linux 二进制分析,只能通过搜索引擎来搜索有限的资料,不管是中文的还是英文的,都颇为琐碎,工程师们不得不在一个又一个网页间不断跳转,以求得知识的完备性,然而互联网上的资料虽多,但真正有价值的内容却不多,大多是一些颇为浅薄的内容。

这本书的出现,填补了 Linux 二进制分析方面的空白,一方面,体系化的内容设计使得安全工程师能够在读完此书后建立起 Linux 二进制分析的完整知识体系。读者在后续需要继续研究时,只需要在此书的基础上,查询其他相关的资料,丰满自己的知识体系即可。另一方面,对于一些开始在工作中使用 ELF 分析的工程师来说, Ryan 的经验也可以真正的帮助他们更好的工作,这才是这本书最难得的。

如果你已经开始了相关的安全工作又或者希望从事软件逆向研究的相关工作,那么你一定不能错过这本书。

6、欢迎交流

译者棣琦已经召集了一个专用的微信群来讨论有关本书的话题,欢迎大家加入(限时):

微信群

如果你加入时二维码已经过期,或者群已经超过百人,你也可以加棣琦的微信,让她拉你进群:

棣琦的微信

福利

作为 Linux 中国参与制书流程的第一本书,我们从出版社那里为大家争取到了福利。在异步社区价值 59 的图书,我给你打 7 折,只要 39.99。

扫描下方二维码,即可下单购买这本《Linux 二进制分析》,欢迎大家转发此文或转发如下图片:

图书

Carla Schroder 正在看着那些她喜欢的终端模拟器, 包括展示在这儿的 Cool Retro Term。

虽然,我们可以继续使用老旧的 GNOME 终端、Konsole,以及好笑而孱弱的旧式 xterm。 不过,让我们带着尝试某种新东西的心境,回过头来看看 5 款酷炫并且实用的 Linux 终端。

Xiki

首先我要推荐的第一个终端是 Xiki。 Xiki 是 Craig Muth 的智慧结晶,他是一个天才程序员,也是一个有趣的人(有趣在此处的意思是幽默,可能还有其它的意思)。 很久以前我在 遇见 Xiki,Linux 和 Mac OS X 下革命性命令行 Shell 一文中介绍过 Xiki。 Xiki 不仅仅是又一款终端模拟器;它也是一个扩展命令行用途、加快命令行速度的交互式环境。

Xiki 支持鼠标,并且在绝大多数命令行 Shell 上都支持。 它有大量的屏显帮助,而且可以使用鼠标和键盘快速导航。 它体现在速度上的一个简单例子就是增强了 ls 命令。 Xiki 可以快速穿过文件系统上的多层目录,而不用持续的重复输入 ls 或者 cd, 或者利用那些巧妙的正则表达式。

Xiki 可以与许多文本编辑器相集成, 提供了一个永久的便签, 有一个快速搜索引擎, 同时像他们所说的,还有许许多多的功能。 Xiki 是如此的有特色、如此的不同, 所以学习和了解它的最快的方式可以看 Craig 的有趣和实用的视频

Cool Retro Term

我推荐 Cool Retro Term (如题图显示) 主要因为它的外观,以及它的实用性。 它将我们带回了阴极射线管显示器的时代,这不算很久以前,而我也没有怀旧的意思,我死也不会放弃我的 LCD 屏幕。它基于 Konsole, 因此有着 Konsole 的优秀功能。可以通过 Cool Retro Term 的配置文件菜单来改变它的外观。配置文件包括 Amber、Green、Pixelated、Apple 和 Transparent Green 等等,而且全都包括一个像真的一样的扫描线。并不是全都是有用的,例如 Vintage 配置文件看起来就像一个闪烁着的老旧的球面屏。

Cool Retro Term 的 GitHub 仓库有着详细的安装指南,且 Ubuntu 用户有 PPA

Sakura

你要是想要一个优秀的轻量级、易配置的终端,可以尝试下 Sakura(图 1)。 它依赖少,不像 GNOME 终端 和 Konsole,在 GNOME 和 KDE 中牵扯了很多组件。其大多数选项是可以通过右键菜单配置的,例如选项卡的标签、 颜色、大小、选项卡的默认数量、字体、铃声,以及光标类型。 你可以在你个人的配置文件 ~/.config/sakura/sakura.conf 里面设置更多的选项,例如绑定快捷键。

sakura

图 1: Sakura 是一个优秀的、轻量级的、可配置的终端。

命令行选项详见 man sakura。可以使用这些来从命令行启动 sakura,或者在你的图形启动器上使用它们。 例如,打开 4 个选项卡并设置窗口标题为 “MyWindowTitle”:

$ sakura -t MyWindowTitle -n 4

Terminology

Terminology 来自 Enlightenment 图形环境的郁葱可爱的世界,它能够被美化成任何你所想要的样子 (图 2)。 它有许多有用的功能:独立的拆分窗口、打开文件和 URL、文件图标、选项卡,林林总总。 它甚至能运行在没有图形界面的 Linux 控制台上。

Terminology

图 2: Terminology 也能够运行在没有图形界面的 Linux 控制台上。

当你打开多个拆分窗口时,每个窗口都能设置不同的背景,并且背景文件可以是任意媒体文件:图像文件、视频或者音乐文件。它带有一堆便于清晰可读的暗色主题和透明主题,它甚至一个 Nyan 猫主题。它没有滚动条,因此需要使用组合键 Shift+PageUpShift+PageDown 进行上下导航。

它有多个控件:一个右键单击菜单,上下文对话框,以及命令行选项。右键单击菜单里包含世界上最小的字体,且 Miniview 可显示一个微观的文件树,但我没有找到可以使它们易于辨读的选项。当你打开多个标签时,可以点击小标签浏览器来打开一个可以上下滚动的选择器。任何东西都是可配置的;通过 man terminology 可以查看一系列的命令和选项,包括一批不错的快捷键快捷方式。奇怪的是,帮助里面没有包括以下命令,这是我偶然发现的:

  • tyalpha
  • tybg
  • tycat
  • tyls
  • typop
  • tyq

使用 tybg [filename] 命令来设置背景,不带参数的 tybg 命令来移除背景。 运行 typop [filename] 来打开文件。 tyls 命令以图标视图列出文件。 加上 -h 选项运行这些命令可以了解它们是干什么的。 即使有可读性的怪癖,Terminology 依然是快速、漂亮和实用的。

Tilda

已经有几个优秀的下拉式终端模拟器,包括 Guake 和 Yakuake。 Tilda (图 3) 是其中最简单和轻量级的一个。 打开 Tilda 后它会保持打开状态, 你可以通过快捷键来显示和隐藏它。 Tilda 快捷键是默认设置的, 你可以设置自己喜欢的快捷键。 它一直打开着的,随时准备工作,但是直到你需要它的时候才会出现。

图 3: Tilda 是最简单和轻量级的一个终端模拟器。

Tilda 选项方面有很好的补充,包括默认的大小、位置、外观、绑定键、搜索条、鼠标动作,以及标签条。 这些都被右键单击菜单控制。

学习更多关于 Linux 的知识可以通过 Linux 基金会 和 edX 的免费课程 "Linux 介绍"


via: https://www.linux.com/learn/intro-to-linux/2017/11/5-coolest-linux-terminal-emulators

作者:CARLA SCHRODER 译者:cnobelw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

2017 中国开源年会 - COSCon'17 于 11 月 18 - 19 日在上海交大闵行校区圆满收官。老王应邀代表 “Linux 中国” 参加了本次盛会。

这次大会总共 1,108 人次到场,在线视频观众总计 2,284 人,参加了接近 60 位大牛讲师的 5 场主题演讲,45 场分会场演讲,6 场动手训练营,5 场嘉宾对谈/观众问答,而来自五湖四海的 50 位可爱的志愿者们,热情地为讲师与观众们服务。

在本次大会上,我发表了题为《如何以翻译贡献参与开源社区——LCTT 这几年》的演讲,就 Linux 中国旗下的志愿者翻译组 LCTT 情况向大家做了介绍,将这几年来的辛酸苦辣、感恩感怀向开源小伙伴们做了倾诉;并就 LCTT 目前的情况和存在的问题,以及下一步的展望做了分析和计划。在本次演讲中,得到诸多关注志愿者翻译活动的社区积极分子的支持,并与其它翻译组织也有了初步合作的沟通。最后,在本次演讲中,我还宣布了重启 LCTT 的 man 翻译计划!

以下内容,摘录自本次演讲,完整的演讲文稿,可从此下载(PDF,3.1 Mb),版式与实际演讲稿有所不同。

演讲内容分为两大部分,分别面向贡献者个人的和面向社区组织者。

面向贡献者谈翻译贡献

首先,谈及为什么要为开源社区做贡献,这是提升自己的一个有益途径:

而且,翻译活动也适合于初入开源社区的同学了解开源和在开源社区中获得进步:

那么,如何参与开源贡献呢?参与的方式有很多,这里从下向上,由易而难依次列出了几个参与的主要方式——而其中所提到的“翻译”就是我本次演讲的主题。

为什么说“参与翻译”是一个比较适合开源贡献者入门的方式呢?是因为:

而且,参与开源社区的翻译活动,要求并不高:

当然,这也是需要你做出一点努力和学习的。

在谈完开源志愿者以翻译贡献参与开源活动之后,我介绍了 LCTT 这几年的发展情况。

LCTT 之路

LCTT 缘起于我对糟糕的 man 文档的中文化翻译的不满:

而这四年来,我们已经取得了令人瞩目的成果:

也涌现出了像 geekpioska874 这样卓越的贡献者:

正是这两百多位贡献者,才成就了 LCTT 这几年来成绩。在外出参加社区交流时,我不止一次地听到别人对我表扬 LCTT 翻译的文章不错,这是让我感到最荣耀的事情,是对我们 LCTT 最大的肯定。

然后,我立下了本次演讲中的 flag,我将重启 man 翻译计划。

中文 man 翻译计划——我的执念

man 翻译计划殇于我们的经验不足和对困难的认识不够:

对此,我们进行了一些反思总结:

历史上,man 中文翻译活动沉沉浮浮,但是一直没有取得像样的成功。

所以,我觉得,对于这样一件有意义的事情,不应该只是心里的念想,而应该切实做出来。希望大家支持我们,参与我们,让我们将这件利在千秋的事情做好。

立下这个目标之后,那么想参与的同学该怎么进入呢?我介绍了加入 LCTT 的方式:

如何加入 LCTT

加入 LCTT 并参与到 LCTT 的贡献活动当中,其实很简单,重要的是,你的意愿。你只需要加入我们的专属 QQ 群: 198889102,验证信息输入“志愿者”,即可加入 LCTT 大家庭。成为了一个 LCTT 人,你不但可以为开源社区做出贡献,而且你还会有自己的专页来展示你的成就。

我也简单介绍了 LCTT 的贡献流程:

后面还谈及了一些我们总结的翻译技巧,这里就不写了,大家可以看完整演讲稿了解,也可以和 LCTT 成员在群内沟通。

然后,面向开源社区组织者谈了一下我们组织和运营 LCTT 几年来的经验心得,希望可以给其它开源社区一些有益的参考。

开源社区如何组织翻译活动

作为志愿者翻译组织,首先要做的就是招募愿意参与的志愿者:

其实,我们这次演讲,也是具有一定的招募意义的。

有了参与者之外,就要拟定和执行一个翻译流程:

并建立激励机制:

以及,到了一定规模之后,就应该考虑建立一个翻译工作平台来规范流程和降低参与难度,这也是我们 LCTT 目前亟待进行的工作:

并且,我们自我反思,在 LCTT 的运营中,也存在一些不足。不怕自曝其丑,这些地方也希望可以给大家一些启示:

最后,结束演讲之前,我还大致谈了谈我的开源社区观,具体内容不在此处赘述,大家可以参考我以前写的一篇文章:《如何参与和帮助「Linux 中国」开源社区的发展

总结

这次参与开源社主办的 “2017 中国开源年会 - COSCon'17”,我见到了许多朋友,有之前闻名已久的新朋友,也有已经熟悉的老朋友。而且,大家的很多分享,都是干货满满——这一点并不是我为朋友们吹嘘,确实,作为开源社区活动人士,很多演讲都让我很有共鸣,也很有启发。

感谢开源社做出的贡献!

使用基于开源软件和廉价云存储的自动备份解决方案来保护你的数据。

几年来,我用 CrashPlan 来备份我家的电脑,包括属于我妻子和兄弟姐妹的电脑。CrashPlan 本质上是“永远在线”,不需要为它操心就可以做的规律性的备份,这真是太棒了。此外,能使用时间点恢复的能力多次派上用场。因为我通常是家庭的 IT 人员,所以我对其用户界面非常容易使用感到高兴,家人可以在没有我帮助的情况下恢复他们的数据。

最近 CrashPlan 宣布,它正在放弃其消费者订阅,专注于其企业客户。我想,这是有道理的,因为它不能从像我这样的人赚到很多钱,而我们的家庭计划在其系统上使用了大量的存储空间。

我决定,我需要一个合适的替代功能,包括:

  • 跨平台支持 Linux 和 Mac
  • 自动化(所以没有必要记得点击“备份”)
  • 时间点恢复(可以关闭),所以如果你不小心删除了一个文件,但直到后来才注意到,它仍然可以恢复
  • 低成本
  • 备份有多份存储,这样数据存在于多个地方(即,不仅仅是备份到本地 USB 驱动器上)
  • 加密以防备份文件落入坏人手中

我四处搜寻,问我的朋友有关类似于 CrashPlan 的服务。我对其中一个 Arq 非常满意,但没有 Linux 支持意味着对我没用。Carbonite 与 CrashPlan 类似,但会很昂贵,因为我有多台机器需要备份。Backblaze 以优惠的价格(每月 5 美金)提供无限备份,但其备份客户端不支持 Linux。BackupPC 是一个强有力的竞争者,但在我想起它之前,我已经开始测试我的解决方案了。我看到的其它选项都不符合我要的一切。这意味着我必须找出一种方法来复制 CrashPlan 为我和我的家人提供的服务。

我知道在 Linux 系统上备份文件有很多好的选择。事实上,我一直在使用 rdiff-backup 至少 10 年了,通常用于本地保存远程文件系统的快照。我希望能够找到可以去除备份数据中重复部分的工具,因为我知道有些(如音乐库和照片)会存储在多台计算机上。

我认为我所做的工作非常接近实现我的目标。

我的备份解决方案

 title=

最终,我的目标落在 BorgBackupRcloneWasabi 云存储的组合上,我的决定让我感到无比快乐。Borg 符合我所有的标准,并有一个非常健康的用户和贡献者社区。它提供重复数据删除和压缩功能,并且在 PC、Mac 和 Linux 上运行良好。我使用 Rclone 将来自 Borg 主机的备份仓库同步到 Wasabi 上的 S3 兼容存储。任何与 S3 兼容的存储都可以工作,但是我选择了 Wasabi,因为它的价格好,而且它的性能超过了亚马逊的 S3。使用此设置,我可以从本地 Borg 主机或从 Wasabi 恢复文件。

在我的机器上安装 Borg 只要 sudo apt install borgbackup。我的备份主机是一台连接有 1.5TB USB 驱动器的 Linux 机器。如果你没有可用的机器,那么备份主机可以像 Raspberry Pi 一样轻巧。只要确保所有的客户端机器都可以通过 SSH 访问这个服务器,那么你就能用了。

在备份主机上,使用以下命令初始化新的备份仓库:

$ borg init /mnt/backup/repo1

根据你要备份的内容,你可能会选择在每台计算机上创建多个仓库,或者为所有计算机创建一个大型仓库。由于 Borg 有重复数据删除功能,如果在多台计算机上有相同的数据,那么从所有这些计算机向同一个仓库发送备份可能是有意义的。

在 Linux 上安装 Borg 非常简单。在 Mac OS X 上,我需要首先安装 XCode 和 Homebrew。我遵循 how-to 来安装命令行工具,然后使用 pip3 install borgbackup

备份

每台机器都有一个 backup.sh 脚本(见下文),由 cron 任务定期启动。它每天只做一个备份集,但在同一天尝试几次也没有什么不好的。笔记本电脑每隔两个小时就会尝试备份一次,因为不能保证它们在某个特定的时间开启,但很可能在其中一个时间开启。这可以通过编写一个始终运行的守护进程来改进,并在笔记本电脑唤醒时触发备份尝试。但现在,我对它的运作方式感到满意。

我可以跳过 cron 任务,并为每个用户提供一个相对简单的方法来使用 BorgWeb 来触发备份,但是我真的不希望任何人必须记得备份。我倾向于忘记点击那个备份按钮,直到我急需修复(这时太迟了!)。

我使用的备份脚本来自 Borg 的快速入门文档,另外我在顶部添加了一些检查,看 Borg 是否已经在运行,如果之前的备份运行仍在进行这个脚本就会退出。这个脚本会创建一个新的备份集,并用主机名和当前日期来标记它。然后用简单的保留计划来整理旧的备份集。

这是我的 backup.sh 脚本:

#!/bin/sh

REPOSITORY=borg@borgserver:/mnt/backup/repo1

#Bail if borg is already running, maybe previous run didn't finish
if pidof -x borg >/dev/null; then
    echo "Backup already running"
    exit
fi

# Setting this, so you won't be asked for your repository passphrase:
export BORG_PASSPHRASE='thisisnotreallymypassphrase'
# or this to ask an external program to supply the passphrase:
export BORG_PASSCOMMAND='pass show backup'

# Backup all of /home and /var/www except a few
# excluded directories
borg create -v --stats                          \
    $REPOSITORY::'{hostname}-{now:%Y-%m-%d}'    \
    /home/doc                                   \
    --exclude '/home/doc/.cache'                \
    --exclude '/home/doc/.minikube'             \
    --exclude '/home/doc/Downloads'             \
    --exclude '/home/doc/Videos'                \
    --exclude '/home/doc/Music'                 \

# Use the `prune` subcommand to maintain 7 daily, 4 weekly and 6 monthly
# archives of THIS machine. The '{hostname}-' prefix is very important to
# limit prune's operation to this machine's archives and not apply to
# other machine's archives also.
borg prune -v --list $REPOSITORY --prefix '{hostname}-' \
    --keep-daily=7 --keep-weekly=4 --keep-monthly=6

备份的输出如下所示:

------------------------------------------------------------------------------
Archive name: x250-2017-10-05
Archive fingerprint: xxxxxxxxxxxxxxxxxxx
Time (start): Thu, 2017-10-05 03:09:03
Time (end):   Thu, 2017-10-05 03:12:11
Duration: 3 minutes 8.12 seconds
Number of files: 171150
------------------------------------------------------------------------------
                       Original size      Compressed size Deduplicated size
This archive:               27.75 GB             27.76 GB 323.76 MB
All archives:                3.08 TB              3.08 TB 262.76 GB

                       Unique chunks         Total chunks
Chunk index:                 1682989             24007828
------------------------------------------------------------------------------
[...]
Keeping archive: x250-2017-09-17                      Sun, 2017-09-17 03:09:02
Pruning archive: x250-2017-09-28                      Thu, 2017-09-28 03:09:02

我在将所有的机器备份到主机上后,我遵循安装预编译的 Rclone 二进制文件指导,并将其设置为访问我的 Wasabi 帐户。

此脚本每天晚上运行以将任何更改同步到备份集:

#!/bin/bash
set -e

repos=( repo1 repo2 repo3 )

#Bail if rclone is already running, maybe previous run didn't finish
if pidof -x rclone >/dev/null; then
    echo "Process already running"
    exit
fi

for i in "${repos[@]}"
do
    #Lets see how much space is used by directory to back up
    #if directory is gone, or has gotten small, we will exit
    space=`du -s /mnt/backup/$i|awk '{print $1}'`

    if (( $space < 34500000 )); then
       echo "EXITING - not enough space used in $i"
       exit
    fi

    /usr/bin/rclone -v sync /mnt/backup/$i wasabi:$i >> /home/borg/wasabi-sync.log 2>&1
done

第一次用 Rclone 同步备份集到 Wasabi 花了好几天,但是我大约有 400GB 的新数据,而且我的出站连接速度不是很快。但是每日的增量是非常小的,能在几分钟内完成。

恢复文件

恢复文件并不像 CrashPlan 那样容易,但是相对简单。最快的方法是从存储在 Borg 备份服务器上的备份中恢复。以下是一些用于恢复的示例命令:

#List which backup sets are in the repo
$ borg list borg@borgserver:/mnt/backup/repo1
Remote: Authenticated with partial success.
Enter passphrase for key ssh://borg@borgserver/mnt/backup/repo1: 
x250-2017-09-17                      Sun, 2017-09-17 03:09:02
#List contents of a backup set
$ borg list borg@borgserver:/mnt/backup/repo1::x250-2017-09-17 | less
#Restore one file from the repo
$ borg extract borg@borgserver:/mnt/backup/repo1::x250-2017-09-17 home/doc/somefile.jpg
#Restore a whole directory
$ borg extract borg@borgserver:/mnt/backup/repo1::x250-2017-09-17 home/doc

如果本地的 Borg 服务器或拥有所有备份仓库的 USB 驱动器发生问题,我也可以直接从 Wasabi 直接恢复。如果机器安装了 Rclone,使用 rclone mount,我可以将远程存储仓库挂载到本地文件系统:

#Mount the S3 store and run in the background
$ rclone mount wasabi:repo1 /mnt/repo1 &
#List archive contents
$ borg list /mnt/repo1
#Extract a file
$ borg extract /mnt/repo1::x250-2017-09-17 home/doc/somefile.jpg

它工作得怎样

现在我已经使用了这个备份方法几个星期了,我可以说我真的很高兴。设置所有这些并使其运行当然比安装 CrashPlan 要复杂得多,但这就是使用你自己的解决方案和使用服务之间的区别。我将不得不密切关注以确保备份继续运行,数据与 Wasabi 正确同步。

但是,总的来说,以一个非常合理的价格替换 CrashPlan 以提供相似的备份覆盖率,结果比我预期的要容易一些。如果你看到有待改进的空间,请告诉我。

这最初发表在 Local Conspiracy,并被许可转载。


作者简介:

Christopher Aedo - Christopher Aedo 自从大学时开始就一直在用开源软件工作并为之作出贡献。最近他在领导一支非常棒的 IBM 上游开发团队,他们也是开发支持者。当他不在工作或在会议上发言时,他可能在俄勒冈州波特兰市使用 RaspberryPi 酿造和发酵美味的自制啤酒。


via: https://opensource.com/article/17/10/backing-your-machines-borg

作者:Christopher Aedo 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Let’s Encrypt 将于 2018 年 1 月开始发放通配证书。通配证书是一个经常需要的功能,并且我们知道在一些情况下它可以使 HTTPS 部署更简单。我们希望提供通配证书有助于加速网络向 100% HTTPS 进展。

Let’s Encrypt 目前通过我们的全自动 DV 证书颁发和管理 API 保护了 4700 万个域名。自从 Let's Encrypt 的服务于 2015 年 12 月发布以来,它已经将加密网页的数量从 40% 大大地提高到了 58%。如果你对通配证书的可用性以及我们达成 100% 的加密网页的使命感兴趣,我们请求你为我们的夏季筹款活动(LCTT 译注:之前的夏季活动,原文发布于今年夏季)做出贡献。

通配符证书可以保护基本域的任何数量的子域名(例如 *.example.com)。这使得管理员可以为一个域及其所有子域使用单个证书和密钥对,这可以使 HTTPS 部署更加容易。

通配符证书将通过我们即将发布的 ACME v2 API 终端免费提供。我们最初只支持通过 DNS 进行通配符证书的基础域验证,但是随着时间的推移可能会探索更多的验证方式。我们鼓励人们在我们的社区论坛上提出任何关于通配证书支持的问题。

我们决定在夏季筹款活动中宣布这一令人兴奋的进展,因为我们是一个非营利组织,这要感谢使用我们服务的社区的慷慨支持。如果你想支持一个更安全和保密的网络,现在捐赠吧

我们要感谢我们的社区和我们的赞助者,使我们所做的一切成为可能。如果你的公司或组织能够赞助 Let's Encrypt,请发送电子邮件至 [email protected]


via: https://letsencrypt.org/2017/07/06/wildcard-certificates-coming-jan-2018.html

作者:Josh Aas 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

作为软件开发人员,我认为我们可以认同开源代码 注1 已经改变了世界。它的公共性质去除了壁垒,可以让软件可以变的最好。但问题是,太多有价值的项目由于领导者的精力耗尽而停滞不前:

“我没有时间和精力去投入开源了。我在开源上没有得到任何收入,所以我在那上面花的时间,我可以用在‘生活上的事’,或者写作上……正因为如此,我决定现在结束我所有的开源工作。”

—— Ryan Bigg,几个 Ruby 和 Elixir 项目的前任维护者

“这也是一个巨大的机会成本,由于我无法同时学习或者完成很多事情,FubuMVC 占用了我很多的时间,这是它现在必须停下来的主要原因。”

—— 前 FubuMVC 项目负责人 Jeremy Miller

“当我们决定要孩子的时候,我可能会放弃开源,我预计最终解决我问题的方案将是:核武器。”

—— Nolan Lawson,PouchDB 的维护者之一

我们需要的是一种新的行业规范,即项目领导者将总是能获得(其付出的)时间上的补偿。我们还需要抛弃的想法是, 任何提交问题或合并请求的开发人员都自动会得到维护者的注意。

我们先来回顾一下开源代码在市场上的作用。它是一个积木。它是实用软件,是企业为了在别处获利而必须承担的成本。如果用户能够理解该代码的用途并且发现它比替代方案(闭源专用、定制的内部解决方案等)更有价值,那么围绕该软件的社区就会不断增长。它可以更好,更便宜,或两者兼而有之。

如果一个组织需要改进该代码,他们可以自由地聘请任何他们想要的开发人员。通常情况下为了他们的利益会将改进贡献给社区,因为由于代码合并的复杂性,这是他们能够轻松地从其他用户获得未来改进的唯一方式。这种“引力”倾向于把社区聚集在一起。

但是它也会加重项目维护者的负担,因为他们必须对这些改进做出反应。他们得到了什么回报?最好的情况是,这些社区贡献可能是他们将来可以使用的东西,但现在不是。最坏的情况下,这只不过是一个带着利他主义面具的自私请求罢了。

有一类开源项目避免了这个陷阱。Linux、MySQL、Android、Chromium 和 .NET Core 除了有名,有什么共同点么?他们都对一个或多个大型企业具有战略性重要意义,因为它们满足了这些利益。聪明的公司商品化他们的商品,没有什么比开源软件便宜的商品了。红帽需要那些使用 Linux 的公司来销售企业级 Linux,Oracle 使用 MySQL 作为销售 MySQL Enterprise 的引子,谷歌希望世界上每个人都拥有电话和浏览器,而微软则试图将开发者锁定在平台上然后将它们拉入 Azure 云。这些项目全部由各自公司直接资助。

但是那些其他的项目呢,那些不是大玩家核心战略的项目呢?

如果你是其中一个项目的负责人,请向社区成员收取年费。开放的源码,封闭的社区。给用户的信息应该是“尽你所愿地使用代码,但如果你想影响项目的未来,请为我们的时间支付。”将非付费用户锁定在论坛和问题跟踪之外,并忽略他们的电子邮件。不支付的人应该觉得他们错过了派对。

还要向贡献者收取合并非普通的合并请求的时间花费。如果一个特定的提交不会立即给你带来好处,请为你的时间收取全价。要有原则并记住 YAGNI

这会导致一个极小的社区和更多的分支么?绝对。但是,如果你坚持不懈地构建自己的愿景,并为其他人创造价值,他们会尽快为要做的贡献而支付。合并贡献的意愿是稀缺资源。如果没有它,用户必须反复地将它们的变化与你发布的每个新版本进行协调。

如果你想在代码库中保持高水平的概念完整性,那么限制社区是特别重要的。有自由贡献政策的无领导者项目没有必要收费。

为了实现更大的愿景,而不是单独为自己的业务支付成本,而是可能使其他人受益,去众筹吧。有许多成功的故事:

众筹有局限性。它不适合大型项目。但是,开源代码也是实用软件,它不需要雄心勃勃、冒险的破局者。它已经一点点地渗透到每个行业

这些观点代表着一条可持续发展的道路,也可以解决开源的多样性问题,这可能源于其历史上无偿的性质。但最重要的是,我们要记住,我们一生中只留下那么多的按键次数,而且我们总有一天会后悔那些我们浪费的东西。

  • 注 1 :当我说“开源”时,我的意思是代码许可以某种方式来构建专有的东西。这通常意味着一个宽松许可证(MIT 或 Apache 或 BSD),但并非总是如此。Linux 是当今科技行业的核心,但是是以 GPL 授权的。

感谢 Jason Haley、Don McNamara、Bryan Hogan 和 Nadia Eghbal 阅读了这篇文章的草稿。


via: http://wgross.net/essays/give-away-your-code-but-never-your-time

作者:William Gross 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出