分类 技术 下的文章

已经决定买一台虚拟服务器,但还不能决定使用哪个 Linux 发行版?我们都经历过这种困扰。对于 Linux 发行版来说,要在这么多的发行版和种种 支派 flavors 中选择一个,那简直能让人崩溃。不过,对于服务器而言,有两个主流的 Linux 发行版,那就是 CentOS 和 Ubuntu。但如何从这两个之中选择,这是摆在管理员、初学者和专业人士面前的主要问题。在对这两个(和更多)发行版有了一定的经验之后,我们决定对这两个发行版用于服务器时做个比较。

利益相关:本文译自 thishosting.rocks,根据国内情况替换了相应推荐的云服务商的链接,有需求者可点击。

概览

CentOSUbuntu
基于 Red Hat Linux Enterprise基于 Debian
更新频度较少经常更新
更稳定和更安全一些,因为不经常更新。更新的软件包可能不稳定,不安全?不会,因为他们在发布到正式版本前进行了大量测试。
没有足够的教程和用户群较少(LCTT 译注:可能是由于国内外情况不同,在国内,相对 Ubuntu 来说,人们更喜欢用 CentOS 做服务器)丰富的文档,活跃的社区和大量的在线教程
对初学者困难,因为基于 Red Hat 桌面发行版不流行更容易为已经熟悉桌面版 Ubuntu 的初学者使用
支持 cPanel不支持 cPanel
.rpm 软件包和 “yum” 软件包管理器.deb 软件包和 “apt-get” 软件包管理器
阿里云Ucloud 免费试用 CentOS 服务器阿里云Ucloud 免费试用 Ubuntu 服务器

哪个更适合新手?

Ubuntu。

一如往常那样,它主要取决于你的需求和以前的经验,但一般来说,Ubuntu 对于初学者来说是更好的选择。主要是因为这两个原因:

  • Ubuntu 有一个庞大的社区,随时可以免费提供帮助。我指的是真正的大。数以千计的用户分布在数百个不同的在线论坛和兴趣组内。甚至有现实生活中的大会。你也可以为 CentOS 找到很多教程和帮助,特别是对于简单的 LAMP 栈和流行的应用程序而言。
  • Ubuntu 服务器对于以前使用过 Ubuntu 桌面的人来说会容易得多。同样的情况也存在于 CentOS 和 Fedora 之间,但是 Ubuntu 桌面版比任何其他基于 Linux 的家用桌面更受欢迎。

所以,如果你是一个初学者,而且没有任何特殊要求,那就去使用 Ubuntu 服务器。 更好的是,你可以从一个便宜的托管服务提供商那购买服务,这样你就可以在你的服务器上进行实验,还有一个专业的 24/7 支持团队准备好帮助你。

哪个更适合商用?

CentOS。

同样,你仍然可以使用 Ubuntu 作为商用网站或公司内部服务器,但 CentOS 有它的优势:

  • CentOS(可以说)更稳定以及更安全。由于 CentOS 的更新频率较低,这意味着软件测试的时间更长,并且只有真正稳定的版本才会得到发布。如果你使用 CentOS,你不会因新的有 bug 的应用程序版本而遇到任何稳定性问题,因为你不会得到那个新的有 bug 的版本。
  • 大多数控制面板(包括最受欢迎的控制面板 - cPanel)仅支持 CentOS。所以这意味着如果你是一个网站托管公司,或者如果你是一个有很多客户的网站服务代理商,并且需要一个控制面板 - CentOS 是一个更好的选择。

尝试一下它们并选择一个

如果你还是不能决定,你可以免费试试它们。你可以在本地安装或使用 live 镜像。你还可以从阿里云Ucloud 这样的地方买到便宜的虚拟专用服务器。你可以在几秒钟内启动 CentOS/Ubuntu 服务器。

哪个更快?

它们在速度方面是相同的。它们和运行在你自己的硬件上一样快。它们将如你配置的一样快。不管怎样,你都应该正确配置并且保护所有的服务器、配置和应用程序。

你会使用哪个发行版?想告诉我们你是哪个发行版的拥趸么?请随时留下评论。


文末评论

W. Anderson:

我的大多数 Linux 服务器部署都是针对企业客户的,所以我对文章作者以 GUI 客户端版本来反映任何服务器的管理功能感到困惑。通常,许多服务提供商也会在 CentOS、Ubuntu,或经常部署的 OpenSuse Leap 和 FreeBSD 10+ 服务器操作系统上提供 WebMin、VirtualAdmin 或类似工具作为控制面板,即使是在虚拟专用服务器(VPS)环境中。

CentOS 在许多商业应用以及高级网络/虚拟化和云计算环境方面具有明显优于 Ubuntu 的优势,并且 CentOS 充分利用 SELinux 框架用于加强的安全层,而目前在 Ubuntu 中则不可用(或不容易)。

这种类型的比较通常是多余的,因为几乎总是有特定的和细微的要求,和需要服务器实现的需求,这将决定哪个发行版具有更多的优势或用途 - 基于技术专家/托管公司的专业知识和广泛的经验。

VAN DER BEKEN:

正确的比较应该是对 Debian 和 CentOS 进行比较。

以我的经验,我使用 CentOS 和 Debian 作为服务器,稍微偏爱 Debian 一点点,因为它的社区。


via: https://thishosting.rocks/centos-vs-ubuntu-server/

作者:thishosting.rocks 译者:geekpi 校对:wxy

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

在默认情况下,所有通过 Bash 在命令行中执行过的命令都被存储在历史缓存区或者一个叫做 ~/.bash_history 的文件里。这意味着系统管理员可以看到系统上用户执行过的命令清单,或者用户可以通过像 history 命令这样的选项来看他或她自己的命令历史。

$ history

Linux History Command

Linux 历史命令

从上面 history 命令的输出可知,命令被执行的日期和时间并没有显示出来。基本上所有的 Linux 发行版的默认设置都是这样的。

在这篇文章里,我们将解释当在 Bash 中执行 history 命令显示每个命令时,如何配置显示时间戳信息。

每个命令相关的日期和时间可以记录到历史文件中,用 HISTTIMEFORMAT 环境变量的设置作为命令历史的备注记录。

这里有两种可行的方式来达到目的:一种是暂时的效果,一种是永久的效果。

要临时设置 HISTTIMEFORMAT 环境变量,在命令行这样输出它:

$ export HISTTIMEFORMAT='%F %T'

在上面的输出命令当中,时间戳格式如下:

1、%F-展开为完整日期,即 %Y-%m-%d(年-月-日)。

2、%T-展开为时间,即 %H:%M:%S(时:分:秒)。

通读 date 命令的 man 手册来获得更多使用说明:

$ man date

然后如下检查你的命令历史:

$ history 

Display Linux Command History with Date and Time

显示带有日期和时间的 Linux 命令历史。

(LCTT 译注:注意:这个功能只能用在当 HISTTIMEFORMAT 这个环境变量被设置之后,之后的那些新执行的 bash 命令才会被打上正确的时间戳。在此之前的所有命令,都将会显示成设置 HISTTIMEFORMAT 变量的时间。)

然而,如果你想永久地配置该变量,用你最喜欢的编辑器打开文件 ~/.bashrc

$ vi ~/.bashrc

然后在下方添加(用注释将其标记为你自己的配置):

# 我的配置
export HISTTIMEFORMAT='%F %T'

保存文件并退出,然后,运行下面的命令以便改动当即生效:

$ source ~/.bashrc

就是这些!请通过下方的评论区来与我们分享一些有趣的历史命令的小技巧以及你对这篇文章的想法。

作者简介:
我是 Ravi Saive,TecMint 的创建者。一个爱在网上分享的技巧和提示的电脑极客和 Linux 专家。我的大多数服务器运行在名为 Linux 的开源平台上。请在 Twitter、 Facebook 和 Google 等上关注我。


via: http://www.tecmint.com/display-linux-command-history-with-date-and-time/

作者:Ravi Saive 译者:Hymantin 校对:wxy

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

运行一条命令时,它都会产生某种输出:要么是该命令的期望结果,或者是该命令执行细节的状态/错误消息。有些时候,你可能想要将某个命令的输出内容存储在一个变量中,以待在后续操作中取出来使用。

本文将介绍将 shell 命令赋值给变量的不同方法,这对于 shell 脚本编程是特别有用的。

可以使用如下形式的 shell 命令置换特性,将命令的输出存储到变量中:

变量名=$(命令)
变量名=$(命令 [命令选项 ...] 参数1 参数2 ...)
或者:
变量名=`命令`
变量名=`命令 [命令选项 ...] 参数1 参数2 ...`

以下是使用命令置换特性的示例:

本例,我们将 who (显示当前登录系统的用户) 的输出值存储到 CURRENT_USERS 变量中:

$ CURRENT_USERS=$(who)

然后,我们可以使用 echo 命令 显示一个句子并使用上述变量,如下:

$ echo -e "以下为登录到系统中的用户:\n\n $CURRENT_USERS"

上面的命令中:-e 标记表示解释所有的转义序列 (如 \n 为换行)。为节约时间和内存,通常在 echo 命令 中直接使用命令置换特性,如下:

$ echo -e "以下为登录到系统中的用户:\n\n $(who)"

显示当前登录系统的用户

在 Linux 中显示当前登录系统的用户

接下来,为了演示上面提到的第二种形式,我们以把当前工作目录下文件数存储到变量 FILES ,然后使用 echo 来输出,如下:

$ FILES=`sudo find . -type f -print | wc -l`
$ echo "当前目录有 $FILES 个文件。"

显示目中包含文件的数量

显示目中包含文件的数量

就是这些了。我们展示了将 shell 命令的输出赋值给变量的方法。你可以在下边的评论反馈区留下你的想法。


作者简介:

Aaron Kili 是一名 Linux 和 F.O.S.S 忠实拥护者、未来的 Linux 系统管理员、Web 开发者,目前是 TecMint 的原创作者,热衷于计算机并乐于知识分享。

译者简介:

GHLandy —— 欲得之,则为之奋斗。 If you want it, work for it.


作者:Aaron Kili 译者:GHLandy 校对:jasminepeng

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

Paul Simon 概括了“与爱人分手的 50 法”,而这里,我们提供了提高系统安全性的 50 种方法。

当我还是小孩子,耳畔萦绕着 Paul Simon 的流行歌“与爱人分手的 50 法”。当我渐渐地长大,突然受歌的启发,收集了 50 种方法,免得你——门内汉和门外汉——遭受黑客侵袭啊:

“你刚刚从后头溜出去了,杰克”

1、 备份你的数据。如果你不幸被勒索软件光顾,那么你就不用支付赎金,因为你做了备份。

2、 当你需要在公共场所为你的手机充电,那就使用 sysncstop吧,或者你也可以用你的备份电池。(LCTT 译注:sysncstop 是一种可以在公共场所安全充电的 USB 设备。在公共场所充电的风险,你知道的。)

3、 利用好你的审计系统,里头有好多很酷的工具可以帮助你监控系统。如果你确实遭到了入侵,那么审计系统也许就可以告诉你发生了什么,以及攻击者做了些什么。

4、 说到日志,把日志定向到集中式服务器上总是一个不错的想法,因为如果某个黑客侵入你的系统里,他首先要攻击的就是日志系统以便隐藏他的踪迹。构建一个好的入侵检测系统来监控日志,这对于防范黑客也很有帮助。

“做份新的计划吧,斯坦”

5、 以强制模式运行 SELinux(见 StopDisablingSelinux.com)。不要觉得我现在还在喋喋不休地说这个可笑。SELinux 可以防止 0day 漏洞的影响。当破壳漏洞出现的时候,SELinux 曾是唯一的防护手段。

6、 如果可能,在 SELinux 沙盒中运行应用程序吧——在容器火遍全球前,它就已经是容器了。同时,请关注 Flatpack 开发,这个工具很快会开发沙盒功能。

7、 不要安装或者使用 Flash。Firefox 不再支持它了,同时也希望大多数 web 服务器正在远离它。

8、 使用受约束的 SELinux 用户来控制用户在你的系统中所能做的事。如果你正运行着一台共享登录的系统,设置用户为 guest_t

“你不必害羞,罗伊”

9、 利用 systemd 工具的能力来帮助你提升系统安全。大多数系统攻击是通过那些监听着网络的服务来实现的,而 Systemd 提供了一些很棒的方法来锁定服务。例如,使用 PrivateTmp=yes 。Privatemp 利用挂载命名空间来为服务器的 /tmp 设置一个私有的 tmpfs 挂载,这可以阻止被入侵的服务访问到主机 /tmp 中的内容,以及针对系统中基于监听 /tmp 的服务的潜在攻击。

10、 InaccessibleDirectories=/home 是一个 systemd 单元的选项,它使用挂载命名空间的方式使从服务的角度看不到 /home 目录(或者其它任何目录),这会使得被入侵的服务攻击到数据更为困难。

11、 ReadOnlyDirectories=/var 是另外一个 systemd 单元的选项,它使用挂载命名空间的方式来将目录内容变成只读模式。基本上你总是可以让 /usr 运行在只读模式。这可以阻止一个被入侵的应用程序重写二进制文件,因为那可以在下次服务重启时,该服务依旧是被入侵的。

12、 降低服务权限(CapabilityBoundingSet=CAP_CHOWN CAP_KILL)。在内核中,特权服务被分解成一些列不同的权限。大多数服务不需要很多权限(如果需要一些的话),而 systemd 提供了一个简单的开关来从服务中剥离这些权限。

13、 如果服务不使用网络,那么你可以使用 PrivateNetwork=yes 来为该服务关闭网络功能。只需在服务的单元文件中开启该选项,就可以享受它带来的好处,关闭服务所有可用的网络。黑客常常并不是真的想破坏你的机器——他只是想用它作为攻击服务器来攻击其它机器。如果服务连不上网络,那么就不会受到攻击。

14、 控制服务可用的设备。 Systemd 提供了 DeviceAllow 配置,它控制了该服务可用的设备。DeviceAllow=/dev/null rw 将访问限制为 /dev/null,且仅可访问该设备节点,不允许对其它任何设备节点的访问。该功能实现于设备的 cgroup 控制器顶端。

15、 Systemd 系统即将迎来的一个新功能是 ProtectSystem Strict,该功能可以开启所有这些命名空间以完全锁定服务运行的环境。

“刚刚重获自由”

16、 不要使用没有运行着 SELinux(SEAndroid)强制模式的手机。幸运的是,我听说目前超过 90% 的安卓手机都运行着 SEAndroid 的强制模式,这真让我高兴。现在要是我们能让那些果粉们使用 SELinux 就好了。

17、 只从受信源安装软件。不要安装你从因特网找来的危险东西,对于你的手机、计算机系统、虚拟机以及容器等等也一样。

18、 我不会在我的手机上进行网上银行操作——我只在我的 Linux 计算机上做这事儿。如果黑客偷了我的信用卡,也许我就丢了那么 50 美元;而如果他黑进我的银行账户,那我丢的钱就会更多。我想我是个老古板。(“滚出我的地盘。”——那些老古板都会这样说。)

19、 我用我手机做的一件很酷的事情,就是设置让我的信用卡公司每次在我的信用卡消费时给我发送短信。那样的话,如果账号被盗,我会更快地知道。

20、 当你需要安全地通讯,请使用 Signal 安全信息应用

“搭个便车,格斯”

21、 在你的计算机系统上运行 Linux。当我第一次想用计算机联络我的父亲时,在他的计算机中毒前,我很少回家。我回去给他的系统安了个 Linux,而他从那以后就一直运行着它。我相信 Linux 大体上说是一个更加安全的系统,因为它的设计方式。而且我也相信这个桌面被黑的可能性也相对较小,因为用它的人相对较少。有些人或许要持反对意见了,他们会说 Windows 在过去几年中已经有了很大的改进了,但对于我而言,我仍然坚持己见。

22、 只运行那些有安全响应团队进行安全监管的发行版。企业软件及其重要。

23、 运行一个企业级内核。在容器中,单点故障往往是内核。如果你想要保证它安全,那么就使用一个企业级内核,即便它不是一个最新的版本,但也包含了最新的安全补丁。记住,最新的内核虽然带来了最新的安全补丁,但是它也带来了大量的新代码,这些代码可能存在漏洞。

“你不要说太多”

24、 大多数非法入侵都是通过社会工程学实施的——例如,电子邮件链接、web 浏览器攻击,以及电话。对于此,最好的选择是接受相关教育,并且对一切留个心眼儿。没有哪个来自尼日利亚的家伙会给你钱,国税局也不会打电话到你家问你要钱。如果你电子邮件收到了来自你银行的电子邮件,里面包含有到某个网站的链接,那么不要直接去点击那个链接,在 web 浏览器中输入那个地址来打开。

25、 总是把你的系统打上最新的安全补丁。已知有安全漏洞以及过时的系统的数量十分可怕,脚本小子们依赖于你更新系统。

26、 当连接到网络上的服务时,请始终使用 HTTPS。Chrome 和 Firefox 现在有个强制开启 HTTPS 的模式。到 2016 年为止,那些还不支持安全通讯的网站可能就不值得你们访问。

27、 在你的容器中使用 seccomp,这会将攻击限制在内核之外,内核是个单点故障。限制什么进程可以具体讨论。

“就把那钥匙丢下吧,李”

28、 使用 YubiKey 来存储私钥。

29、 加密你系统上的数据。至少对于笔记本而言,应该把家目录以及你的其它数据目录加密。几年前,我正乘坐在伦敦的地铁上,我的笔记本就成了某些人的目标——我下了车,车门关上了,而我发现我的笔记本不见了。此时,地铁已经驶出了站台。幸运的是,我把磁盘加密了。

30、 给你的所有网站用上 Let's Encrypt 吧,没有任何理由不再运行 HTTPS 了。

31、 绝不要在不同 web 服务器上使用相同的密码。虽然这个很难不落入陷阱,但是像 Let's Encrypt 这样的工具会有很大帮助。如果你使用 ssh 密钥来登录进系统,这会更好。

32、 使用双因素认证(2FA)。密码变得无关紧要,使用 Yubikey 以及诸如此类的工具可以使得双因素认证很方便,我们都有手机。在大脑中记一个密码,并在手机中生成一个密钥,总是比一个密码来得更好。

33、 网站总要我注册个帐号,没有比这更激怒我的事情了——我们就不能做得更好点?对于网站密码,始终都要使用密码生成工具来生成。我是个保守派:我使用 Password Safe 来生成密码,然后剪切粘贴到 web 浏览器中。我听说,其他人使用 LastPass,或者其它整合在手机和 web 服务中的工具也用着不错。

34、 配置像 FreeIPA 之类的服务用于身份认证。使用像 Kerberos 之类的工具来认证和授权,会使得跟踪雇员及其对系统的访问更为简便(而且它也有很酷的加密服务)。使用活动目录也很不错,或许我有点偏颇。

35、 如果你经常输入密码,那就使用一个容易记忆的句子,而不是一个单词。我所偏好的用于记忆密码的方式,就是使用有几个单词并且易于输入的词组。

“让自己自由”

36、 使用 USBGuard 来保护你的系统免遭流氓 USB 设备破坏。

37、 在过去几年中,我一直工作于容器方面,让我们来说说容器的安全吧。首先,让它们在开启强制模式的 SELinux 的系统中运行。如果你的系统不支持 SELinux,那就换个支持它的版本吧。SELinux 是使用文件系统来保护容器免遭破坏的最佳工具。

38、 如果可能,在容器中跑你的服务吧。我相信,使用 OCI 镜像格式 和 Linux 容器技术是应用的未来。用 runC、OCID、RKT、Systemd-nspawn 等等来启动这些容器。虽然我常常说“容器并不包容“,但是不要在容器外面运行这些服务更好一些。

39、 在虚拟机中运行容器。虚拟机提供比容器更好的隔离机制,在虚拟机中跑像容器之类的东西,更加灵活有弹性,并且互相隔离。

40、 在不同的虚拟机中,按不同的安全需求跑容器应用。你可以在 DMZ 中的虚拟机上跑 web 服务容器,而在 DMZ 外的虚拟机上跑数据容器。

41、 同时,记得在不同的物理机上跑需要最高安全性的虚拟机,并且容器放在不同虚拟机上(这也叫深度防护)(LCTT 译注:此处原文有误,根据理解修改)。

42、 以只读模式跑容器。开发环境中的容器需要能够写入到 /usr,但是生产环境中的容器只能写入到 tmpfs,并且将卷挂载到容器中。

43、 降低容器权限。不管是在容器中,还是在容器外,我们都以比它们所需的更多的“权限”跑它们的进程,你可以通过降低权限来让你的进程更加安全。

44、 不要以 root 身份在容器中跑进程。大多数服务都不需要 root 特权,或者它们需要该权限来绑定到低于 1024 的端口,然后切换到非 root 用户。我建议你始终以非 root 身份来跑应用。

45、 给你的容器打上最新的 CVE 补丁。使用像 OpenShift 这样的工具来构建并维护你的容器镜像是个不错的主意,因为它会在新的安全补丁出现时自动重构容器镜像。

46、 我的一个同事说 “Docker 就是用来在你的主机上以 root 身份运行来自因特网的随机代码的。”从一个受信源获取软件,不要抓取你在 docker.io 上随便找到的第一个 Apache 应用。操作系统有重要关系

47、 在一台受限的容器化优化的主机上跑生产环境容器,例如在一台原子主机上,它开启了所有安全特性,为运行中的容器而优化,带有限制攻击层和原子级更新。有什么不喜欢的吗?

48、 使用像 OpenScap 这样的工具来扫描你系统的漏洞。糟糕的是,新的漏洞总是层出不穷,所以你得时刻更新你的扫描器。(也可以看看 原子扫描,用于扫描你的容器。)

49、 OpenScap 也具有扫描安全配置的功能,如 STIG(安全技术部署指南)。

50、 为你孩子收到的所有那些圣诞物联网设备设置一个特别的客户网络。我钟爱我的 Amazon Echo,还有自动化灯以及电源开关(“Alexa,打开圣诞灯“),但是所有这些都是由可能存在安全问题的 Linux 操作系统控制。

“一定还有着另外 50 种免遭黑客侵害的方法”

你会为这个列表添加点什么呢?在下面的评论中告诉我们吧。

Josh Bressers 对本文作出贡献。


作者简介:

Daniel J Walsh - Daniel Walsh 已经致力于计算机安全领域将近 30 年。Dan 在 2001 年 8 月份加入 Red Hat。


via: https://opensource.com/article/17/1/yearbook-50-ways-avoid-getting-hacked

作者:Daniel J Walsh 译者:GOLinux 校对:wxy

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

Axel 是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载。

Axel 支持 HTTP、HTTPS、FTP 和 FTPS 协议。它也可以使用多个镜像站点下载单个文件,所以,Axel 可以加速下载高达 40%(大约,我个人认为)。它非常轻量级,因为它没有依赖并且使用非常少的 CPU 和内存。

Axel 一步到位地将所有数据直接下载到目标文件(LCTT 译注:而不是像其它的下载软件那样下载成多个文件块,然后拼接)。

注意:不支持在单条命令中下载两个文件。

你还可以尝试其他命令行下载管理器/加速器。

大多数发行版(Debian、Ubuntu、Mint、Fedora、suse、openSUSE、Arch Linux、Manjaro、Mageia 等)都有 axel 包,所以我们可以从发行版官方仓库轻松安装。对于 CentOS/RHEL,我们需要启用 EPEL Repository

[在 Debian/Ubuntu/LinuxMint 上安装 Axel]
$ sudo apt-get install axel

[在 RHEL/CentOS 上安装 Axel]
$ sudo yum install axel

[在 Fedora 上安装 Axel]
$ sudo dnf install axel

[在 openSUSE 上安装 Axel]
$ sudo zypper install axel

[在 Mageia 上安装 Axel]
$ sudo urpmi axel

[在基于 Arch Linux 的发行版安装 Axel]
$ sudo pacman -S axel

1) 下载单个文件

以下命令将从给定的 URL 下载文件并存储在当前目录中,下载文件时,我们可以看到文件的信息(建立的连接数、下载速度、下载进度、完成下载所花费的时间以及连接完成的时间)。

# axel https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
File size: 22678208 bytes
Opening output file owncloud-9.0.0.tar.bz2
Starting download

[  0%]  .......... .......... .......... .......... ..........  [ 146.7KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 267.0KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 373.9KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 406.9KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 487.5KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 572.6KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 650.7KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 649.3KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 718.1KB/s]
[  2%]  .......... .......... .......... .......... ..........  [ 769.3KB/s]
[  2%]  .......... .......... .......... .......... ..........  [ 838.7KB/s]
[  2%]  .......... .......... .......... .......... ..........  [ 866.0KB/s]
Connection 0 finished
.
.
[ 99%]  .......... .......... .......... .......... ..........  [5721.0KB/s]
Connection 2 finished
[ 99%]  .......... .......... .......... .......... ..........  [5733.4KB/s]
Connection 1 finished
[ 99%]  .......... .......... .......... .......... ..........  [5745.4KB/s]
[100%]  .......... .......... .......... .......... ......

Downloaded 21.6 megabytes in 3 seconds. (5755.94 KB/s)

2) 用不同的名称保存文件

要使用其他名称来保存文件,启动下载时可以添加 -o(小写字母)选项和文件名。这里我们使用文件名 owncloud.tar.bz2 来保存文件。

# axel -o cloud.tar.bz2 https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
File size: 22678208 bytes
Opening output file cloud.tar.bz2
Starting download

[  0%]  .......... .......... .......... .......... ..........  [ 143.0KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 264.1KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 309.8KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 406.3KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 495.4KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 586.3KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 673.1KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 647.1KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 721.1KB/s]
[  2%]  .......... .......... .......... .......... ..........  [ 781.3KB/s]
Connection 2 finished
.
.
Connection 0 finished
[ 98%]  .......... .......... .......... .......... ..........  [6221.9KB/s]
[ 98%]  .......... .......... .....
Connection 1 finished
        ,,,,,,,,,, ,,,,,,,,,, ,,,,,..... .......... ..........  [6145.6KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [6159.2KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [6172.0KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [5977.9KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [5989.6KB/s]
[100%]  .......... .......... .......... .......... ......

Downloaded 21.6 megabytes in 3 seconds. (6001.05 KB/s)

3) 限制下载速度

默认情况下 axel 以字节/秒为单位设置下载文件的最大速度。当我们的网络连接速度较慢时,可以使用此选项。只需添加 -s 选项,后面跟字节值。这里我们要限速 512 KB/s 下载一个文件。

# axel -s 512000 https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
File size: 22678208 bytes
Opening output file owncloud-9.0.0.tar.bz2
Starting download

[  0%]  .......... .......... .......... .......... ..........  [ 141.5KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 266.1KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 308.0KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 405.9KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 496.7KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 526.4KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 507.0KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 505.6KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 504.8KB/s]
[  2%]  .......... .......... .......... .......... ..........  [ 503.9KB/s]
[  2%]  .......... .......... .......... .......... ..........  [ 503.4KB/s]
.
.
[ 99%]  .......... .......... .......... .......... ..........  [ 497.0KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [ 496.9KB/s]
[100%]  .......... ..
Connection 0 finished
        ,,,,,,,,,, ,,.....
Connection 1 finished
Connection 3 finished
        ,,,,,,,,,, ,,,,,,,... .......... .......... ......

Downloaded 21.6 megabytes in 44 seconds. (494.54 KB/s)

4) 限制连接数

axel 默认建立 4 个连接以从不同的镜像获取文件。此外,我们可以通过使用 -n 选项添加更多的连接,后跟连接数 10 来提高下载速度。保险起见,我们添加了十个连接,但不幸的是,它花了更多时间来下载文件。

# axel -n 10 https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
File size: 22678208 bytes
Opening output file owncloud-9.0.0.tar.bz2
Starting download

[  0%]  .......... .......... .......... .......... ..........  [ 140.8KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 265.7KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 305.4KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 402.1KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 496.3KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 522.1KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 567.5KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 640.5KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 710.8KB/s]
[  2%]  .......... .......... .......... .......... ..........  [ 780.5KB/s]
.
.
[ 98%]  .......... .......... .......... .......... ..........  [7544.9KB/s]
[ 98%]  .......... .......... .......... .......... ..........  [7557.9KB/s]
[ 98%]  .......... .......... .......... .......... ..........  [7570.4KB/s]
[ 98%]  .......... .......... .......... .......... ..........  [7495.3KB/s]
[ 99%]  .......... .......... .......... .......... ......
Connection 2 finished
        ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,....  [7311.6KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [7318.9KB/s]
[ 99%]  .......... .......... .......... .......... ..........
Connection 9 finished
        ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,  [7331.0KB/s]
[ 99%]  .......... .......... .......... ..........
Connection 3 finished
        ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ..........  [4300.7KB/s]
[100%]  .......... .......... .......... .......... ......

Downloaded 21.6 megabytes in 5 seconds. (4109.41 KB/s)

5) 恢复未完成的下载

axel 默认具有恢复未完成的下载的行为。Axel 在下载文件时定期更新状态文件(扩展名为 .st)。由于某些原因,下载中途停止了?不用担心,只要使用相同的 axel 命令,它将会检查 filefile.st,如果找到,它会从停止处恢复下载。

# axel https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
File size: 22678208 bytes
Opening output file owncloud-9.0.0.tar.bz2
Starting download

[  0%]  .......... .......... .......... .......... ..........  [ 140.8KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 265.7KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 305.4KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 402.1KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 496.3KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 522.1KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 567.5KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 640.5KB/s]
[  1%]  .......... .......... .......... .......... ..........  [ 710.8KB/s]
[  2%]  .......... .......... .......... .......... ..........  [ 780.5KB/s]
.
.
[ 84%]  .......... .......... .......... .......... ..........  [7100.7KB/s]
[ 84%]  .......... .......... .......... .......... ..........  [7104.3KB/s]
[ 84%]  .......... .......... .......... .^C

Downloaded 18.3 megabytes in 2 seconds. (7009.79 KB/s)

上面的输出清晰地显示了在下载断开时有两个文件 owncloud-9.0.0.tar.bz2owncloud-9.0.0.tar.bz2.st。当重新开始下载时,它会从停止处开始下载。

# ls -lh
total 19M
-rw------- 1 root root 22M Dec 27 08:33 owncloud-9.0.0.tar.bz2
-rw------- 1 root root  44 Dec 27 08:33 owncloud-9.0.0.tar.bz2.st

# axel https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
File size: 22678208 bytes
Opening output file owncloud-9.0.0.tar.bz2
State file found: 19180828 bytes downloaded, 3497380 to go.
Starting download

        ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,......... ..........  [  66.5KB/s]
[ 84%]  .......... .......... .......... .......... ..........  [ 186.0KB/s]
[ 85%]  .......... .......... .......... .......... ..........  [ 241.7KB/s]
[ 85%]  .......... .......... .......... .......... ..........  [ 335.6KB/s]
[ 85%]  .......... .......... .......... .......... ..........  [ 351.5KB/s]
[ 85%]  .......... .......... .......... .......... ..........  [ 427.1KB/s]
[ 85%]  .......... .......... .......... .......... ..........  [ 427.4KB/s]
[ 86%]  .......... .......... .......... .......... ..........  [ 491.5KB/s]
.
.
[ 98%]  ...
Connection 0 finished
        ,,,....... .......... .......... .......... ..........  [2106.6KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [2140.5KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [2172.4KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [2203.2KB/s]
[ 99%]  .......... .......... .......... .......... ..........  [2236.2KB/s]
[100%]  .......... .......... .......... .......... ......

Downloaded 3415.4 kilobytes in 1 second. (2264.93 KB/s)

6) 不显示文件下载进度

如果你不想要看到文件的下载进度,只要在 axel 命令中加入 -q 选项。

# axel -q https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2

7) 替换进度条

如果你不喜欢默认的进度条,你可以使用 -a 选项来替换进度条。

# axel -a https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
File size: 22678208 bytes
Opening output file owncloud-9.0.0.tar.bz2
Starting download

[ 66%] [......0      ...1        ..........2  ...........3] [   5.8MB/s] [00:01]^C

Downloaded 14.3 megabytes in 2 seconds. (5916.11 KB/s)

我们中断了上面的下载,以便在下载文件时能清楚地显示替代进度条状态。一旦文件成功下载后,你可以看到相同的输出,如下所示。

# axel -a https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
File size: 22678208 bytes
Opening output file owncloud-9.0.0.tar.bz2
Starting download

Connection 2 finished                                                          ]
Connection 1 finished                                                          ]
Connection 3 finished                                                          ]
Connection 0 finished                                                          ]

Downloaded 21.6 megabytes in 4 seconds. (5062.32 KB/s)

8) 了解关于 axel 的更多信息

如果你想要了解更多关于 axel 的选项,只需要进入它的手册。

# man axel
或者
# axel --help

享受吧……


via: http://www.2daygeek.com/axel-command-line-downloader-accelerator-for-linux/

作者:Magesh Maruthamuthu 译者:geekpi 校对:jasminepeng

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

sudoers 是 Linux 中的默认 sudo 安全策略插件,但是经验丰富的系统管理员可以自定义安全策略以及输入输出日志记录的插件。它由 /etc/sudoers 这个文件驱动,或者也可在 LDAP 中。

你可以在上面的文件中定义 sudoers 嘲讽 insults 或其他选项。它在 defaults 部分下设置。请阅读我们的上一篇文章在 Linux 中设置 sudo 时 10 个有用的 sudoers 配置

在本文中,我们将解释一个 sudoers 配置参数,以允许个人或系统管理员设置 sudo 命令,当系统用户输入错误密码时“嘲讽”他们。

首先打开文件 /etc/sudoers,如下所示:

$ sudo visudo

进入 defaults 部分,并添加下面的行:

Defaults   insults

下面是我系统中 /etc/sudoers 默认展示的 defaults 部分。

Set sudo Insults Parameter

设置 sudo insults 参数

从上面的截图中,你可以看到 defaults 中还有许多其他默认值定义,例如,每次用户输入错误的密码时发送邮件到 root、设置安全路径、配置自定义 sudo 日志文件等。

保存并关闭文件。

运行 sudo 命令并输入错误的密码,然后观察 insults 选项是如何工作的:

$ sudo visudo

sudo Insult in Action

实践 sudo insult

注意:当配置 insults 参数时,它会禁用 badpass_message 参数,该参数在用户输入错误的密码时,会在命令行中输出特定的消息(默认消息为 “sorry, try again”)。

要修改该消息,请将 badpass_message 参数添加到 /etc/sudoers 文件中,如下所示。

Defaults  badpass_message="Password is wrong, please try again"  #try to set a message of your own

Set sudo badpassword Message

设置 sudo 错误密码消息

保存并关闭文件,然后调用 sudo 查看它是如何工作的,你设置的 badpass_message 消息会在每次你或任何系统用户输入错误的密码的时候打印出来。

$ sudo visudo

Sudo badpassword Message

sudo 密码错误消息

就是这样了,在本文中,我们回顾了如何在用户输入错误的密码时将 sudo 设置为显示嘲讽。请通过下面的评论栏分享你的想法。


作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,将来的 Linux SysAdmin、web 开发人员,目前是 TecMint 的内容创建者,他喜欢用电脑工作,并坚信分享知识。


via: http://www.tecmint.com/sudo-insult-when-enter-wrong-password/

作者:Aaron Kili 译者:geekpi 校对:jasminepeng

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