救命!我的电子邮件发不到 500 英里以外!
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/29/164052m11xmbbadbxyle4p.jpg">Media</a>这是一个听起来几乎不可能的事情……我甚至有点后悔将它发到网上,因为它在一个会议上成了一则著名的酒后故事。这个故事略有改动,以保护故事中的人物,以及忽略了一些无关的细节使之更有趣一些。几年前,当我接到统计系主任的电话时,我正在从事维护校园电子邮件系统的工作。“我们从部门发送电子邮件时遇到了问题。”“有什么问题?” 我问。“我们不能发送超过 500 英里的邮件,”主任解释说。“咳咳”,我被我喝的拿铁呛了一口,“您再说一遍?”“我们不能发送距这里超过 500 英里的邮件,”他重复道。 “实际上,更远一点,是 520 英里,但不能更远了。”“嗯......电子邮件真的不会这样,通常,”我说,试着让我的声音听起来不那么慌乱。我不能和一个系主任说话时显得慌乱,即使是一个像统计系这样的相对没钱的院系。 “是什么让你觉得你不能发送邮件超过 500 英里?”“这不是我<strong>认为的</strong>,”主任有点急躁地回答道。 “我们首先注意到了这种情况是几天前。”“你等了<strong>几天</strong>?” 我打断他,带点颤音说道。 “这段时间你一直你不能发送电子邮件?”“我们可以发送电子邮件。只是不超过 ——”“—— 500 英里,我知道,”我接过他的话,“我知道了。但为什么没有你早点打电话呢?”“好吧,我们没有收集&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/29/164052m11xmbbadbxyle4p.jpg">Media</a>这是一个听起来几乎不可能的事情……我甚至有点后悔将它发到网上,因为它在一个会议上成了一则著名的酒后故事。这个故事略有改动,以保护故事中的人物,以及忽略了一些无关的细节使之更有趣一些。几年前,当我接到统计系主任的电话时,我正在从事维护校园电子邮件系统的工作。“我们从部门发送电子邮件时遇到了问题。”“有什么问题?” 我问。“我们不能发送超过 500 英里的邮件,”主任解释说。“咳咳”,我被我喝的拿铁呛了一口,“您再说一遍?”“我们不能发送距这里超过 500 英里的邮件,”他重复道。 “实际上,更远一点,是 520 英里,但不能更远了。”“嗯......电子邮件真的不会这样,通常,”我说,试着让我的声音听起来不那么慌乱。我不能和一个系主任说话时显得慌乱,即使是一个像统计系这样的相对没钱的院系。 “是什么让你觉得你不能发送邮件超过 500 英里?”“这不是我<strong>认为的</strong>,”主任有点急躁地回答道。 “我们首先注意到了这种情况是几天前。”“你等了<strong>几天</strong>?” 我打断他,带点颤音说道。 “这段时间你一直你不能发送电子邮件?”“我们可以发送电子邮件。只是不超过 ——”“—— 500 英里,我知道,”我接过他的话,“我知道了。但为什么没有你早点打电话呢?”“好吧,我们没有收集&…
如何构建一台网络引导服务器(二)
我们将向你展示如何在第一部分的基础上,重新配置网络引导镜像,以便 活动目录 中的用户帐户可以进行登录,然后从一个 NFS 服务器上自动挂载他们的家目录。Media
via https://linux.cn/article-10396-1.html
我们将向你展示如何在第一部分的基础上,重新配置网络引导镜像,以便 活动目录 中的用户帐户可以进行登录,然后从一个 NFS 服务器上自动挂载他们的家目录。Media
via https://linux.cn/article-10396-1.html
如何构建一台网络引导服务器(二)
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/29/224635ia5a06njzjy00zsz.jpg">Media</a>在 <a href="https://linux.cn/article-10379-1.html">如何构建一台网络引导服务器(一)</a> 的文章中,我们展示了如何创建一个网络引导镜像,在那个镜像中使用了一个名为 liveuser 帐户,它的家目录位于内存中,重启后家目录中的内容将全部消失。然而很多用户都希望机器重启后保存他们的文件和设置。因此,在本系列的第二部分,我们将向你展示如何在第一部分的基础上,重新配置网络引导镜像,以便 <a href="https://en.wikipedia.org/wiki/Active_Directory">活动目录</a> 中的用户帐户可以进行登录,然后从一个 NFS 服务器上自动挂载他们的家目录。本系列的第三部分,我们将向你展示网络引导客户端如何与中心化配置的 iPXE 引导菜单进行交互。设置使用 KRB5 认证的 NFS4 Home 目录按以前的文章 “<a href="https://fedoramagazine.org/secure-nfs-home-directories-kerberos">使用 Kerberos 强化共享的 NFS Home 目录安全性</a>” 的指导来做这个设置。删除 Liveuser 帐户删除本系列文章第一部分中创建的 liveuser 帐户:<pre class="prettyprint linenums">$ sudo -i# sed -i '/automaticlogin/Id' /fc28/etc/gdm/custom.conf# rm -f /fc28/etc/sudoers.d/liveuser# for i in passwd shadow group gshadow; do sed -i '/^liveuser:/d' /fc28/etc/$i; done</pre>配置 NTP、KRB5 和 SSSD接下来,我们需要将 NTP、KRB5 和 SSSD 的配置文件复制进客户端使用的镜像中,以便于它们能够使用同一个帐户:<pre class="prettyprint linenums"># MY_HOSTNAME=$(</etc/hostname)# MY_DOMAIN=${MY_HOSTNAME#*.}# dnf -y --installroot=/fc28 install ntp krb5-workstation sssd# cp /etc/ntp.conf /fc28/etc# chroot /fc28 systemctl enable ntpd.service# cp /etc/krb5.conf.d/${MY_DOMAIN%%.*} /fc28/etc/krb5.conf.d# cp /etc/sssd/sssd.conf /fc28/etc/sssd</pre>在已配置的识别服务的基础上,重新配置 sssd 提供认证服务:<pre…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/29/224635ia5a06njzjy00zsz.jpg">Media</a>在 <a href="https://linux.cn/article-10379-1.html">如何构建一台网络引导服务器(一)</a> 的文章中,我们展示了如何创建一个网络引导镜像,在那个镜像中使用了一个名为 liveuser 帐户,它的家目录位于内存中,重启后家目录中的内容将全部消失。然而很多用户都希望机器重启后保存他们的文件和设置。因此,在本系列的第二部分,我们将向你展示如何在第一部分的基础上,重新配置网络引导镜像,以便 <a href="https://en.wikipedia.org/wiki/Active_Directory">活动目录</a> 中的用户帐户可以进行登录,然后从一个 NFS 服务器上自动挂载他们的家目录。本系列的第三部分,我们将向你展示网络引导客户端如何与中心化配置的 iPXE 引导菜单进行交互。设置使用 KRB5 认证的 NFS4 Home 目录按以前的文章 “<a href="https://fedoramagazine.org/secure-nfs-home-directories-kerberos">使用 Kerberos 强化共享的 NFS Home 目录安全性</a>” 的指导来做这个设置。删除 Liveuser 帐户删除本系列文章第一部分中创建的 liveuser 帐户:<pre class="prettyprint linenums">$ sudo -i# sed -i '/automaticlogin/Id' /fc28/etc/gdm/custom.conf# rm -f /fc28/etc/sudoers.d/liveuser# for i in passwd shadow group gshadow; do sed -i '/^liveuser:/d' /fc28/etc/$i; done</pre>配置 NTP、KRB5 和 SSSD接下来,我们需要将 NTP、KRB5 和 SSSD 的配置文件复制进客户端使用的镜像中,以便于它们能够使用同一个帐户:<pre class="prettyprint linenums"># MY_HOSTNAME=$(</etc/hostname)# MY_DOMAIN=${MY_HOSTNAME#*.}# dnf -y --installroot=/fc28 install ntp krb5-workstation sssd# cp /etc/ntp.conf /fc28/etc# chroot /fc28 systemctl enable ntpd.service# cp /etc/krb5.conf.d/${MY_DOMAIN%%.*} /fc28/etc/krb5.conf.d# cp /etc/sssd/sssd.conf /fc28/etc/sssd</pre>在已配置的识别服务的基础上,重新配置 sssd 提供认证服务:<pre…
Linux 求职建议
通过对招聘网站数据的仔细研究,我们发现,即使是非常有经验的 Linux 程序员,也会在面试中陷入困境。Media
via https://linux.cn/article-10397-1.html
通过对招聘网站数据的仔细研究,我们发现,即使是非常有经验的 Linux 程序员,也会在面试中陷入困境。Media
via https://linux.cn/article-10397-1.html
Linux 求职建议
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/30/103638xo3qtjrnq8g6q3wj.jpg">Media</a>通过对招聘网站数据的仔细研究,我们发现,即使是非常有经验的 Linux 程序员,也会在面试中陷入困境。这就导致了很多优秀并且有经验的人无缘无故地找不到合适的工作,因为如今的就业市场需要我们有一些手段来提高自己的竞争力。我有两个同事和一个表哥,他们都有 RedHat 认证,管理过比较大的服务器机房,也都收到过前雇主的认真推荐。可是,在他们应聘的时候,所有的这些证书、本身的能力、工作经验好像都没有起到任何作用,他们所面对的招聘广告是某人从技术词汇中临时挑选的一些“技能片段”所组成的。现如今,礼貌变得过时了,<strong>不回应</strong>变成了发布招聘广告的公司的新沟通方式。这同样也意味着大多公司的招聘或者人事可能会<strong>错过</strong>非常优秀的应聘者。我之所以敢说的如此肯定,是因为现在招聘广告大多数看上去都非常的滑稽。<a href="http://reallylinux.com">Reallylinux.com</a> 另一位特约撰稿人 Walter ,发表过一篇关于 <a href="http://reallylinux.com/docs/wantadsmad.shtml">招聘广告疯掉了</a> 的文章。他说的也许是对的,可是我认为 Linux 工作应聘者可以通过注意招聘广告的<strong>三个关键点</strong>避免落入陷阱。<strong>首先</strong>,很少会有 Linux 系统管理员的招聘广告只针对 Linux 有要求。一定要注意很少有 Linux 系统管理员的职位是实际在服务器上跑 Linux的,反而,很多在搜索…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/30/103638xo3qtjrnq8g6q3wj.jpg">Media</a>通过对招聘网站数据的仔细研究,我们发现,即使是非常有经验的 Linux 程序员,也会在面试中陷入困境。这就导致了很多优秀并且有经验的人无缘无故地找不到合适的工作,因为如今的就业市场需要我们有一些手段来提高自己的竞争力。我有两个同事和一个表哥,他们都有 RedHat 认证,管理过比较大的服务器机房,也都收到过前雇主的认真推荐。可是,在他们应聘的时候,所有的这些证书、本身的能力、工作经验好像都没有起到任何作用,他们所面对的招聘广告是某人从技术词汇中临时挑选的一些“技能片段”所组成的。现如今,礼貌变得过时了,<strong>不回应</strong>变成了发布招聘广告的公司的新沟通方式。这同样也意味着大多公司的招聘或者人事可能会<strong>错过</strong>非常优秀的应聘者。我之所以敢说的如此肯定,是因为现在招聘广告大多数看上去都非常的滑稽。<a href="http://reallylinux.com">Reallylinux.com</a> 另一位特约撰稿人 Walter ,发表过一篇关于 <a href="http://reallylinux.com/docs/wantadsmad.shtml">招聘广告疯掉了</a> 的文章。他说的也许是对的,可是我认为 Linux 工作应聘者可以通过注意招聘广告的<strong>三个关键点</strong>避免落入陷阱。<strong>首先</strong>,很少会有 Linux 系统管理员的招聘广告只针对 Linux 有要求。一定要注意很少有 Linux 系统管理员的职位是实际在服务器上跑 Linux的,反而,很多在搜索…
在 Linux 命令行中观看彩虹猫来稍事休息
你甚至可以在终端里欣赏彩虹猫。Media今天是《Linux 命令行小玩具介绍》的第六天。在本系列文章中,我们将会探索一些娱乐用途(甚至有时完全没用)的 Linux 命令行小玩具。所有我们介绍的小玩具都是开源的。也许你会问,它们都很独特吗?是的。不过,它们对你是否独特,我就不知道了。但是,我们相信你应该能在这系列文章结束之前找到至少一个好玩的玩具。从昨天的选题继续:我们谈到了猫和彩虹。不过,在 Linux 命令行下有更有趣的彩虹和猫结合的程序吗?答案是肯定的。我们不妨看看之前可以在命令行中使用彩虹猫的方式吧。意料之中,2011 年发布的 彩虹猫 可以用 nyancat 呈现在终端中。你想念这只曾火遍网络的彩虹猫吗?看看下面这个视频记录吧,我会等你看完的。现在,让我们在终端中重新感受这个令人惊奇的体验吧。nyancat 包正在很多发行版上(比如 Arch、Debian、Gentoo、Ubuntu 等等……)都有,不过我的系统(Fedora)没有,但是我们仍然可以很轻松地从源码编译它。根据读者的一个很好的提醒,对于我来说,这应该在该系列中提及:要警惕从不受信任的来源安装应用程序,或者编译和运行你在网上找到的任何代码,就像你在这样的文章中找到这个一样。如果您不确定,请采取适当的预防措施,特别是如果您在生产机器上。从这里克隆源代码:
via https://linux.cn/article-10398-1.html?utm_source=rss&utm_medium=rss
你甚至可以在终端里欣赏彩虹猫。Media今天是《Linux 命令行小玩具介绍》的第六天。在本系列文章中,我们将会探索一些娱乐用途(甚至有时完全没用)的 Linux 命令行小玩具。所有我们介绍的小玩具都是开源的。也许你会问,它们都很独特吗?是的。不过,它们对你是否独特,我就不知道了。但是,我们相信你应该能在这系列文章结束之前找到至少一个好玩的玩具。从昨天的选题继续:我们谈到了猫和彩虹。不过,在 Linux 命令行下有更有趣的彩虹和猫结合的程序吗?答案是肯定的。我们不妨看看之前可以在命令行中使用彩虹猫的方式吧。意料之中,2011 年发布的 彩虹猫 可以用 nyancat 呈现在终端中。你想念这只曾火遍网络的彩虹猫吗?看看下面这个视频记录吧,我会等你看完的。现在,让我们在终端中重新感受这个令人惊奇的体验吧。nyancat 包正在很多发行版上(比如 Arch、Debian、Gentoo、Ubuntu 等等……)都有,不过我的系统(Fedora)没有,但是我们仍然可以很轻松地从源码编译它。根据读者的一个很好的提醒,对于我来说,这应该在该系列中提及:要警惕从不受信任的来源安装应用程序,或者编译和运行你在网上找到的任何代码,就像你在这样的文章中找到这个一样。如果您不确定,请采取适当的预防措施,特别是如果您在生产机器上。从这里克隆源代码:
git clone https://github.com/klange/nyancat.git然后使用 make 编译,并用 ./nyancat 来运行。这直接为我带来了彩虹猫体验,甚至还有个计时器来显示我享受 “彩虹猫魔法”的时间。Media你可以在 GitHub 上找到 nyancat 的源码,它正以 NCSA 许可证 开源。命令行版本的彩虹猫可在这个公共 Telnet 服务器上访问(或者用另外一个猫 netcat 也行),所以理论上来说你不必安装它。不过不幸的是,由于带宽限制,该服务器目前已经被关闭了。尽管如此,在各种老设备上连接老 Telnet 服务器上运行彩虹猫的照片还是值得一看的,说不准你还会萌生搭建一个能让大家连接的公共服务器的想法呢(如果你真的搭建了,请务必告知作者,万一他们可能会向公众分享呢?)。你想让我介绍一下你最喜爱的命令行玩具吗?请在原文下留言,作者会考虑介绍的。瞧瞧我们昨天介绍的小玩意:用 lolcat 为你的 Linux 终端增添些许色彩。明天再来看我们的下一篇文章吧!via: https://opensource.com/article/18/12/linux-toy-nyancat作者:Jason Baker 选题:lujun9972 译者:zhs852 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-10398-1.html?utm_source=rss&utm_medium=rss
用户、组及其它 Linux 特性(二)
我们继续创建和管理用户和组的 Linux 教程之旅。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/30/193339hj9zyiyosbnbdrjo.jpg">Media在正在进行的 Linux 之旅中,我们了解了<a href="https://linux.cn/article-10066-1.html">如何操作文件夹或目录,现在我们继续讨论 权限、用户 和 组,这对于确定谁可以操作哪些文件和目录是必要的。<a href="https://linux.cn/article-10370-1.html">上次,我们展示了如何创建新用户,现在我们将重新起航:你可以使用 groupadd 命令创建新组,然后随意添加用户。例如,使用:<pre class="prettyprint linenums">sudo groupadd photos</pre>这将会创建 photos 组。你需要在根目录下<a href="https://linux.cn/article-10066-1.html">创建一个目录:<pre class="prettyprint linenums">sudo mkdir /photos</pre>如果你运行 ls -l /,结果中会有如下这一行:<pre class="prettyprint linenums">drwxr-xr-x 1 root root 0 jun 26 21:14 photos</pre>输出中的第一个 root 是所属的用户,第二个 root 是所属的组。要将 /photos 目录的所有权转移到 photos 组,使用:<pre class="prettyprint linenums">chgrp photos /photos</pre>chgrp 命令通常采用两个参数,第一个参数是将要获得文件或目录所有权的组,第二个参数是希望交给组的文件或目录。接着,运行 ls -l /,你会发现刚才那一行变了:<pre class="prettyprint linenums">drwxr-xr-x 1 root photos 0 jun 26 21:14 photos</pre>你已成功将新目录的所有权转移到了 photos 组。然后,将你自己的用户和 guest 用户添加到 photos 组:<pre class="prettyprint linenums">sudo usermod <你的用户名> -a -G photossudo usermod guest -a -G photos</pre>你可能必须注销并重新登录才能看到更改,但是当你这样做时,运行 groups 会将 photos 显示为你所属的组之一。关于上面提到的 usermod 命令,需要指明几点。Ļ…
我们继续创建和管理用户和组的 Linux 教程之旅。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/30/193339hj9zyiyosbnbdrjo.jpg">Media在正在进行的 Linux 之旅中,我们了解了<a href="https://linux.cn/article-10066-1.html">如何操作文件夹或目录,现在我们继续讨论 权限、用户 和 组,这对于确定谁可以操作哪些文件和目录是必要的。<a href="https://linux.cn/article-10370-1.html">上次,我们展示了如何创建新用户,现在我们将重新起航:你可以使用 groupadd 命令创建新组,然后随意添加用户。例如,使用:<pre class="prettyprint linenums">sudo groupadd photos</pre>这将会创建 photos 组。你需要在根目录下<a href="https://linux.cn/article-10066-1.html">创建一个目录:<pre class="prettyprint linenums">sudo mkdir /photos</pre>如果你运行 ls -l /,结果中会有如下这一行:<pre class="prettyprint linenums">drwxr-xr-x 1 root root 0 jun 26 21:14 photos</pre>输出中的第一个 root 是所属的用户,第二个 root 是所属的组。要将 /photos 目录的所有权转移到 photos 组,使用:<pre class="prettyprint linenums">chgrp photos /photos</pre>chgrp 命令通常采用两个参数,第一个参数是将要获得文件或目录所有权的组,第二个参数是希望交给组的文件或目录。接着,运行 ls -l /,你会发现刚才那一行变了:<pre class="prettyprint linenums">drwxr-xr-x 1 root photos 0 jun 26 21:14 photos</pre>你已成功将新目录的所有权转移到了 photos 组。然后,将你自己的用户和 guest 用户添加到 photos 组:<pre class="prettyprint linenums">sudo usermod <你的用户名> -a -G photossudo usermod guest -a -G photos</pre>你可能必须注销并重新登录才能看到更改,但是当你这样做时,运行 groups 会将 photos 显示为你所属的组之一。关于上面提到的 usermod 命令,需要指明几点。Ļ…
用于游戏开发的图形和音乐工具
要在三天内打造一个可玩的游戏,你需要一些快速而稳定的好工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/31/001708cq67g0u9kkzz7j6z.png">Media</a>在十月初,我们的俱乐部马歇尔大学的 <a href="http://mugeeks.org/">Geeks and Gadgets</a> 参加了首次 <a href="https://itch.io/jam/open-jam-1">Open Jam</a>,这是一个庆祝最佳开源工具的游戏 Jam。游戏 Jam 是一种活动,参与者以团队协作的方式来开发有趣的计算机游戏。Jam 一般都很短,仅有三天,并且非常累。Opensource.com 在八月下旬<a href="https://opensource.com/article/17/8/open-jam-announcement">发布了</a> Open Jam 活动,足有 <a href="https://opensource.com/article/17/11/open-jam">45 支游戏</a> 进入到了竞赛中。我们的俱乐部希望在我们的项目中创建和使用开放源码软件,所以 Open Jam 自然是我们想要参与的 Jam 了。我们提交的游戏是一个实验性的游戏,名为 <a href="https://mugeeksalpha.itch.io/mark-omy-words">Mark My Words</a>。我们使用了多种自由和开放源码 (FOSS) 工具来开发它;在这篇文章中,我们将讨论一些我们使用的工具和我们注意到可能有潜在阻碍的地方。音频工具MilkyTracker<a href="http://milkytracker.titandemo.org/">MilkyTracker</a> 是一个可用于编曲老式视频游戏中的音乐的软件包。它是一种<a href="https://en.wikipedia.org/wiki/Music_tracker">音乐声道器</a>music tracker,是一个强大的 MOD 和 XM 文件创建器,带有基于特征网格的模式编辑器。在我们的游戏中,我们使用它来编曲大多数的音乐片段。这个程序最好的地方是,它比我们其它的大多数工具消耗更少的硬盘空间和内存。虽然如此,MilkyTracker 仍然非常强大。<a href="https://dn-linuxcn.qbox.me/data/atta…
要在三天内打造一个可玩的游戏,你需要一些快速而稳定的好工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/31/001708cq67g0u9kkzz7j6z.png">Media</a>在十月初,我们的俱乐部马歇尔大学的 <a href="http://mugeeks.org/">Geeks and Gadgets</a> 参加了首次 <a href="https://itch.io/jam/open-jam-1">Open Jam</a>,这是一个庆祝最佳开源工具的游戏 Jam。游戏 Jam 是一种活动,参与者以团队协作的方式来开发有趣的计算机游戏。Jam 一般都很短,仅有三天,并且非常累。Opensource.com 在八月下旬<a href="https://opensource.com/article/17/8/open-jam-announcement">发布了</a> Open Jam 活动,足有 <a href="https://opensource.com/article/17/11/open-jam">45 支游戏</a> 进入到了竞赛中。我们的俱乐部希望在我们的项目中创建和使用开放源码软件,所以 Open Jam 自然是我们想要参与的 Jam 了。我们提交的游戏是一个实验性的游戏,名为 <a href="https://mugeeksalpha.itch.io/mark-omy-words">Mark My Words</a>。我们使用了多种自由和开放源码 (FOSS) 工具来开发它;在这篇文章中,我们将讨论一些我们使用的工具和我们注意到可能有潜在阻碍的地方。音频工具MilkyTracker<a href="http://milkytracker.titandemo.org/">MilkyTracker</a> 是一个可用于编曲老式视频游戏中的音乐的软件包。它是一种<a href="https://en.wikipedia.org/wiki/Music_tracker">音乐声道器</a>music tracker,是一个强大的 MOD 和 XM 文件创建器,带有基于特征网格的模式编辑器。在我们的游戏中,我们使用它来编曲大多数的音乐片段。这个程序最好的地方是,它比我们其它的大多数工具消耗更少的硬盘空间和内存。虽然如此,MilkyTracker 仍然非常强大。<a href="https://dn-linuxcn.qbox.me/data/atta…
CEO 的 Emacs 秘籍
一旦你了解了 Emacs,你就会意识到它其实是一台可以当发动机用的的热核烤面包机……好吧,只是文本处理的所有事情。当考虑到你计算机的使用周期在很大程度上都是与文本有关时,这是一个相当大胆的声明。大胆,但却是真的。Media
via https://linux.cn/article-10401-1.html
一旦你了解了 Emacs,你就会意识到它其实是一台可以当发动机用的的热核烤面包机……好吧,只是文本处理的所有事情。当考虑到你计算机的使用周期在很大程度上都是与文本有关时,这是一个相当大胆的声明。大胆,但却是真的。Media
via https://linux.cn/article-10401-1.html
CEO 的 Emacs 秘籍
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/31/201447ifjh5gn6idn0dvh0.jpg">Media几年前,不,是几十年前,我就在用 Emacs。不论是码代码、编写文档,还是管理邮件和日程,我都用这个编辑器,或者是说操作系统,而且我还乐此不疲。许多年过去了,我也转向了其他更新、更好的工具。结果,就连最基本的文件浏览,我都已经忘了在不用鼠标的情况下该怎么操作。大约三个月前,我意识到我在应用程序和计算机之间切换上耗费了大量的时间,于是我决定再次使用 Emacs。这是个很正确的决定,原因有以下几个。其中包括用 .emacs 和 Dropbox 来搭建一个良好的、可移植的环境的一些技巧。对于那些还没用过 Emacs 的人来说,Emacs 会让你爱恨交加。它有点像一个房子大小的鲁布·戈德堡机械Rube Goldberg machine,乍一看,它具备烤面包机的所有功能。这听起来不像是一种认可,但关键词是“乍一看”。一旦你了解了 Emacs,你就会意识到它其实是一台可以当发动机用的热核烤面包机……好吧,只是指文本处理的所有事情。当考虑到你计算机的使用周期在很大程度上都是与文本有关时,这是一个相当大胆的声明。大胆,但却是真的。也许对我来说更重要的是,Emacs 是我曾经使用过的一个应用,并让我觉得我真正的拥有它,而不是把我塑造成一个匿名的“用户”,就好像位于 <a href="http://www.huffingtonpost.com/zachary-ehren/soma-isnt-a-drug-san-fran_b_987841.html">Soma(LCTT 译注:旧金山的一个"…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/31/201447ifjh5gn6idn0dvh0.jpg">Media几年前,不,是几十年前,我就在用 Emacs。不论是码代码、编写文档,还是管理邮件和日程,我都用这个编辑器,或者是说操作系统,而且我还乐此不疲。许多年过去了,我也转向了其他更新、更好的工具。结果,就连最基本的文件浏览,我都已经忘了在不用鼠标的情况下该怎么操作。大约三个月前,我意识到我在应用程序和计算机之间切换上耗费了大量的时间,于是我决定再次使用 Emacs。这是个很正确的决定,原因有以下几个。其中包括用 .emacs 和 Dropbox 来搭建一个良好的、可移植的环境的一些技巧。对于那些还没用过 Emacs 的人来说,Emacs 会让你爱恨交加。它有点像一个房子大小的鲁布·戈德堡机械Rube Goldberg machine,乍一看,它具备烤面包机的所有功能。这听起来不像是一种认可,但关键词是“乍一看”。一旦你了解了 Emacs,你就会意识到它其实是一台可以当发动机用的热核烤面包机……好吧,只是指文本处理的所有事情。当考虑到你计算机的使用周期在很大程度上都是与文本有关时,这是一个相当大胆的声明。大胆,但却是真的。也许对我来说更重要的是,Emacs 是我曾经使用过的一个应用,并让我觉得我真正的拥有它,而不是把我塑造成一个匿名的“用户”,就好像位于 <a href="http://www.huffingtonpost.com/zachary-ehren/soma-isnt-a-drug-san-fran_b_987841.html">Soma(LCTT 译注:旧金山的一个"…
用 PGP 保护代码完整性(四):将主密钥移到离线存储中
如果开发者的 PGP 密钥被偷了,危害非常大。了解一下如何更安全。Media
via https://linux.cn/article-10402-1.html
如果开发者的 PGP 密钥被偷了,危害非常大。了解一下如何更安全。Media
via https://linux.cn/article-10402-1.html
用 PGP 保护代码完整性(四):将主密钥移到离线存储中
如果开发者的 PGP 密钥被偷了,危害非常大。了解一下如何更安全。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/01/003541ehzdol364f315cf5.jpg">Media</a>在本系列教程中,我们为使用 PGP 提供了一个实用指南。你可以从下面的链接中查看前面的文章:<a href="https://linux.cn/article-9524-1.html">第一部分:基本概念和工具</a><a href="https://linux.cn/article-9529-1.html">第二部分:生成你的主密钥</a><a href="https://linux.cn/article-9607-1.html">第三部分:生成 PGP 子密钥</a>这是本系列教程的第四部分,我们继续本教程,我们将谈一谈如何及为什么要将主密钥从你的家目录移到离线存储中。现在开始我们的教程。清单准备一个加密的可移除的存储(必要)备份你的 GnuPG 目录(必要)从你的家目录中删除主密钥(推荐)从你的家目录中删除吊销证书(推荐)考虑事项为什么要从你的家目录中删除你的主 [C] 密钥 ?这样做的主要原因是防止你的主密钥失窃或意外泄露。对于心怀不轨的人来说,私钥对他们具有很大的诱惑力 —— 我们知道有几个恶意软件成功地实现了扫描用户的家目录并将发现的私钥内容上传。对于开发者来说,私钥失窃是非常危险的事情 —— 在自由软件的世界中,这无疑是身份证明失窃。从你的家目录中删除私钥将帮你防范这类事件的发生。备份你的 GnuPG 目录<strong>!!!绝对不要跳过这一步!!!</strong>备份你的 PGP 密钥将让你在需要的时候很容易地恢…
如果开发者的 PGP 密钥被偷了,危害非常大。了解一下如何更安全。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/01/003541ehzdol364f315cf5.jpg">Media</a>在本系列教程中,我们为使用 PGP 提供了一个实用指南。你可以从下面的链接中查看前面的文章:<a href="https://linux.cn/article-9524-1.html">第一部分:基本概念和工具</a><a href="https://linux.cn/article-9529-1.html">第二部分:生成你的主密钥</a><a href="https://linux.cn/article-9607-1.html">第三部分:生成 PGP 子密钥</a>这是本系列教程的第四部分,我们继续本教程,我们将谈一谈如何及为什么要将主密钥从你的家目录移到离线存储中。现在开始我们的教程。清单准备一个加密的可移除的存储(必要)备份你的 GnuPG 目录(必要)从你的家目录中删除主密钥(推荐)从你的家目录中删除吊销证书(推荐)考虑事项为什么要从你的家目录中删除你的主 [C] 密钥 ?这样做的主要原因是防止你的主密钥失窃或意外泄露。对于心怀不轨的人来说,私钥对他们具有很大的诱惑力 —— 我们知道有几个恶意软件成功地实现了扫描用户的家目录并将发现的私钥内容上传。对于开发者来说,私钥失窃是非常危险的事情 —— 在自由软件的世界中,这无疑是身份证明失窃。从你的家目录中删除私钥将帮你防范这类事件的发生。备份你的 GnuPG 目录<strong>!!!绝对不要跳过这一步!!!</strong>备份你的 PGP 密钥将让你在需要的时候很容易地恢…
极客漫画:呃,70 后
70 后的老程序员已经对层出不穷的编程语言感到了厌烦,虽然这已经距离上一个编程语言出现已经十年了。Media
via https://linux.cn/article-10403-1.html
70 后的老程序员已经对层出不穷的编程语言感到了厌烦,虽然这已经距离上一个编程语言出现已经十年了。Media
via https://linux.cn/article-10403-1.html
极客漫画:呃,70 后
Media70 后的老程序员已经对层出不穷的编程语言感到了厌烦,虽然这已经距离上一个编程语言出现已经十年了。虽然老程序员依旧很潮——扎着马尾,穿着花裤子——但是不能掩饰其秃顶和肥胖的腰身。IT 行业,是一个日新月异的行业,老程序员们如何跟上时代呢?十年,快吗?via: http://turnoff.us/geek/oh-the-70s/作者:Daniel Stori 译者 & 校对:wxy 校对 & 合成:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-10403-1.html?utm_source=rss&utm_medium=rss
Media70 后的老程序员已经对层出不穷的编程语言感到了厌烦,虽然这已经距离上一个编程语言出现已经十年了。虽然老程序员依旧很潮——扎着马尾,穿着花裤子——但是不能掩饰其秃顶和肥胖的腰身。IT 行业,是一个日新月异的行业,老程序员们如何跟上时代呢?十年,快吗?via: http://turnoff.us/geek/oh-the-70s/作者:Daniel Stori 译者 & 校对:wxy 校对 & 合成:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-10403-1.html?utm_source=rss&utm_medium=rss
一个 HTTP/2 的故事
我花了大约 25 个小时来完成。坐下来穿上舒适的拖鞋,听听这个 HTTP/2 的故事!Media
via https://linux.cn/article-10404-1.html
我花了大约 25 个小时来完成。坐下来穿上舒适的拖鞋,听听这个 HTTP/2 的故事!Media
via https://linux.cn/article-10404-1.html
一个 HTTP/2 的故事
大约一个月前,有人在我所在的 IRC 频道中提到了 <a href="https://en.wikipedia.org/wiki/HTTP/2">HTTP/2</a>。由于某种原因,我从未听说过它,而且新协议的一些功能(比如无需打开多个 TCP 连接就能复用请求)似乎很酷。说实话,我刚刚重写了管理我们备份程序的 Puppet 代码,启用 HTTP/2 似乎是一种转向另一个大型项目之前有效的拖延方式。这有多难?结果我花了大约 25 个小时来完成。坐下来穿上舒适的拖鞋,听听这个 HTTP/2 的故事!<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/01/170158dnzuuw8ids3dw8sb.jpg">Media</a>被诅咒的 HTTP/1.1当我第一次看到如何在 Apache 上启用 HTTP/2 时,这似乎是一项非常简单的任务。文档提到加载 http2 模块并通过如下配置文件确保新协议优先:<pre class="prettyprint linenums">Protocols h2 h2c http/1.1H2Push onH2PushPriority * afterH2PushPriority text/css beforeH2PushPriority image/jpeg after 32H2PushPriority image/png after 32H2PushPriority application/javascript interleaved</pre>这当然很容易。即使 Apache 中的所有内容都已正确设置,网站仍然使用的是 HTTP/1.1。不过,显然我做得没错,因为我的网站现在发送了一个新的 HTTP 头:Upgrade: h2, h2c。在浪费了大量时间调试 TLS 密钥(HTTP/2 <a href="https://http2.github.io/http2-spec/#TLSUsage">与 TLS 1.1 不兼容</a>)之后,我终于发现问题是没有使用正确的 Apache 多进程处理模块。事实证明,在使用 mpm_prefork(默认 MPM)时,Apache 不会使用 HTTP/2,因为 mod_http2 不支持它。尽管 Apache 还有两个其他的 MPM,但只有 mpm_prefork 支持 mod_php。突然之间,添加对 HTTP/2 的支持意味着我们将要把所有的 PHP 网站切换到 PHP-FPM。掉进兔子洞在很长一段时间里,一位好友一İ…
大约一个月前,有人在我所在的 IRC 频道中提到了 <a href="https://en.wikipedia.org/wiki/HTTP/2">HTTP/2</a>。由于某种原因,我从未听说过它,而且新协议的一些功能(比如无需打开多个 TCP 连接就能复用请求)似乎很酷。说实话,我刚刚重写了管理我们备份程序的 Puppet 代码,启用 HTTP/2 似乎是一种转向另一个大型项目之前有效的拖延方式。这有多难?结果我花了大约 25 个小时来完成。坐下来穿上舒适的拖鞋,听听这个 HTTP/2 的故事!<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/01/170158dnzuuw8ids3dw8sb.jpg">Media</a>被诅咒的 HTTP/1.1当我第一次看到如何在 Apache 上启用 HTTP/2 时,这似乎是一项非常简单的任务。文档提到加载 http2 模块并通过如下配置文件确保新协议优先:<pre class="prettyprint linenums">Protocols h2 h2c http/1.1H2Push onH2PushPriority * afterH2PushPriority text/css beforeH2PushPriority image/jpeg after 32H2PushPriority image/png after 32H2PushPriority application/javascript interleaved</pre>这当然很容易。即使 Apache 中的所有内容都已正确设置,网站仍然使用的是 HTTP/1.1。不过,显然我做得没错,因为我的网站现在发送了一个新的 HTTP 头:Upgrade: h2, h2c。在浪费了大量时间调试 TLS 密钥(HTTP/2 <a href="https://http2.github.io/http2-spec/#TLSUsage">与 TLS 1.1 不兼容</a>)之后,我终于发现问题是没有使用正确的 Apache 多进程处理模块。事实证明,在使用 mpm_prefork(默认 MPM)时,Apache 不会使用 HTTP/2,因为 mod_http2 不支持它。尽管 Apache 还有两个其他的 MPM,但只有 mpm_prefork 支持 mod_php。突然之间,添加对 HTTP/2 的支持意味着我们将要把所有的 PHP 网站切换到 PHP-FPM。掉进兔子洞在很长一段时间里,一位好友一İ…
如何构建一台网络引导服务器(三)
我们将向你展示如何设置一个更复杂的 iPXE 配置。它将允许终端用户以更容易的方式去选择引导哪个操作系统。它也可以配置为让系统管理员从一台中央服务器来统一管理引导菜单。Media
via https://linux.cn/article-10405-1.html
我们将向你展示如何设置一个更复杂的 iPXE 配置。它将允许终端用户以更容易的方式去选择引导哪个操作系统。它也可以配置为让系统管理员从一台中央服务器来统一管理引导菜单。Media
via https://linux.cn/article-10405-1.html
如何构建一台网络引导服务器(三)
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/01/172110uwb7tt3x0gapas33.jpg">Media</a>在 <a href="https://linux.cn/article-10379-1.html">如何构建一台网络引导服务器(一)</a> 中,我们提供了一个极简的 <a href="https://ipxe.org/">iPXE</a> 引导脚本来引导你的网络引导镜像。许多用户除了使用网络引导镜像外,可能在机器本地也有一个操作系统。但是使用常见的工作站的 BIOS 去切换引导加载器是很笨拙的。在本系列文件的第三部分,我们将向你展示如何设置一个更复杂的 iPXE 配置。它将允许终端用户以更容易的方式去选择引导哪个操作系统。它也可以配置为让系统管理员从一台中央服务器来统一管理引导菜单。一个交互式 iPXE 引导菜单下面这些命令重定义了网络引导镜像的 boot.cfg 来作为一个交互式的 iPXE 引导菜单,并使用了一个 5 秒倒计时的定时器:<pre class="prettyprint linenums">$ MY_FVER=29$ MY_KRNL=$(ls -c /fc$MY_FVER/lib/modules | head -n 1)$ MY_DNS1=192.0.2.91$ MY_DNS2=192.0.2.92$ MY_NAME=server-01.example.edu$ MY_EMAN=$(echo $MY_NAME | tr '.' "\n" | tac | tr "\n" '.' | cut -b -${#MY_NAME})$ MY_ADDR=$(host -t A $MY_NAME | awk '{print $4}')$ cat << END > $HOME/esp/linux/boot.cfg#!ipxeset timeout 5000:menumenu iPXE Boot Menuitem --key 1 lcl 1. Microsoft Windows 10item --key 2 f$MY_FVER 2. RedHat Fedora $MY_FVERchoose --timeout \${timeout} --default lcl selected || goto shellset timeout 0goto \${selected}:failedecho boot failed, dropping to shell...goto shell:shellecho type 'exit' to get the back to the menuset timeout 0shellgoto menu:lclexit:f$MY_FVERkernel --name kernel.efi \${prefix}/vmlinuz-$MY_KRNL initrd=initrd.img ro ip=dhcp rd.peerdns=0 nameserver=$MY_DNS1 nameserver=$MY_DNS2 root=/dev/disk/by-path/ip-$MY_ADDR:3260-iscsi-iqn.$MY_EMAN:fc$MY_FVER-lun-1 netroot=iscsiMediaMY_ADDR::::iqn.$MY_EMAN:fc$MY_FVER console=tty0 console=ttyS0,115200n8 audit=0 selinux=0 quietinitrd --name initrd.img \${prefix}/initramfs-$MY_KRNL.imgboot || goto failedEND</pre>上述菜单有五个节:menu 定义了显示在屏幕上的实际菜单内容。failed 提示用户发生了错误,并将用户带到 shell 以错误错误。shell 提供了交互式命令提示符。你可以&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/01/172110uwb7tt3x0gapas33.jpg">Media</a>在 <a href="https://linux.cn/article-10379-1.html">如何构建一台网络引导服务器(一)</a> 中,我们提供了一个极简的 <a href="https://ipxe.org/">iPXE</a> 引导脚本来引导你的网络引导镜像。许多用户除了使用网络引导镜像外,可能在机器本地也有一个操作系统。但是使用常见的工作站的 BIOS 去切换引导加载器是很笨拙的。在本系列文件的第三部分,我们将向你展示如何设置一个更复杂的 iPXE 配置。它将允许终端用户以更容易的方式去选择引导哪个操作系统。它也可以配置为让系统管理员从一台中央服务器来统一管理引导菜单。一个交互式 iPXE 引导菜单下面这些命令重定义了网络引导镜像的 boot.cfg 来作为一个交互式的 iPXE 引导菜单,并使用了一个 5 秒倒计时的定时器:<pre class="prettyprint linenums">$ MY_FVER=29$ MY_KRNL=$(ls -c /fc$MY_FVER/lib/modules | head -n 1)$ MY_DNS1=192.0.2.91$ MY_DNS2=192.0.2.92$ MY_NAME=server-01.example.edu$ MY_EMAN=$(echo $MY_NAME | tr '.' "\n" | tac | tr "\n" '.' | cut -b -${#MY_NAME})$ MY_ADDR=$(host -t A $MY_NAME | awk '{print $4}')$ cat << END > $HOME/esp/linux/boot.cfg#!ipxeset timeout 5000:menumenu iPXE Boot Menuitem --key 1 lcl 1. Microsoft Windows 10item --key 2 f$MY_FVER 2. RedHat Fedora $MY_FVERchoose --timeout \${timeout} --default lcl selected || goto shellset timeout 0goto \${selected}:failedecho boot failed, dropping to shell...goto shell:shellecho type 'exit' to get the back to the menuset timeout 0shellgoto menu:lclexit:f$MY_FVERkernel --name kernel.efi \${prefix}/vmlinuz-$MY_KRNL initrd=initrd.img ro ip=dhcp rd.peerdns=0 nameserver=$MY_DNS1 nameserver=$MY_DNS2 root=/dev/disk/by-path/ip-$MY_ADDR:3260-iscsi-iqn.$MY_EMAN:fc$MY_FVER-lun-1 netroot=iscsiMediaMY_ADDR::::iqn.$MY_EMAN:fc$MY_FVER console=tty0 console=ttyS0,115200n8 audit=0 selinux=0 quietinitrd --name initrd.img \${prefix}/initramfs-$MY_KRNL.imgboot || goto failedEND</pre>上述菜单有五个节:menu 定义了显示在屏幕上的实际菜单内容。failed 提示用户发生了错误,并将用户带到 shell 以错误错误。shell 提供了交互式命令提示符。你可以&…