2018年2月

当你正在创建 LXD 容器的时候,你希望它们能被预先配置好。例如在容器一启动就自动执行 apt update来安装一些软件包,或者运行一些命令。

这篇文章将讲述如何用 cloud-init 来对 LXD 容器进行进行早期初始化

接下来,我们将创建一个包含cloud-init指令的LXD profile,然后启动一个新的容器来使用这个profile。

如何创建一个新的 LXD profile

查看已经存在的 profile:

$ lxc profile list
+---------|---------+
| NAME    | USED BY |
+---------|---------+
| default | 11      |
+---------|---------+

我们把名叫 default 的 profile 复制一份,然后在其内添加新的指令:

$ lxc profile copy default devprofile

$ lxc profile list
+------------|---------+
| NAME       | USED BY |
+------------|---------+
| default    | 11      |
+------------|---------+
| devprofile | 0       |
+------------|---------+

我们就得到了一个新的 profile: devprofile。下面是它的详情:

$ lxc profile show devprofile
config:
 environment.TZ: ""
description: Default LXD profile
devices:
 eth0:
 nictype: bridged
 parent: lxdbr0
 type: nic
 root:
 path: /
 pool: default
 type: disk
name: devprofile
used_by: []

注意这几个部分: config:description:devices:name:used_by:,当你修改这些内容的时候注意不要搞错缩进。(LCTT 译注:因为这些内容是 YAML 格式的,缩进是语法的一部分)

如何把 cloud-init 添加到 LXD profile 里

cloud-init 可以添加到 LXD profile 的 config 里。当这些指令将被传递给容器后,会在容器第一次启动的时候执行。

下面是用在示例中的指令:

 package_upgrade: true
 packages:
 - build-essential
 locale: es_ES.UTF-8
 timezone: Europe/Madrid
 runcmd:
 - [touch, /tmp/simos_was_here]

package_upgrade: true 是指当容器第一次被启动时,我们想要 cloud-init 运行 sudo apt upgradepackages: 列出了我们想要自动安装的软件。然后我们设置了 localetimezone。在 Ubuntu 容器的镜像里,root 用户默认的 localeC.UTF-8,而 ubuntu 用户则是 en_US.UTF-8。此外,我们把时区设置为 Etc/UTC。最后,我们展示了如何使用 runcmd 来运行一个 Unix 命令

我们需要关注如何将 cloud-init 指令插入 LXD profile。

我首选的方法是:

$ lxc profile edit devprofile

它会打开一个文本编辑器,以便你将指令粘贴进去。结果应该是这样的

$ lxc profile show devprofile
config:
  environment.TZ: ""
  user.user-data: |
    #cloud-config
    package_upgrade: true
    packages:
      - build-essential
    locale: es_ES.UTF-8
    timezone: Europe/Madrid
    runcmd:
      - [touch, /tmp/simos_was_here]
description: Default LXD profile
devices:
  eth0:
    nictype: bridged
    parent: lxdbr0
    type: nic
  root:
    path: /
    pool: default
    type: disk
name: devprofile
used_by: []

如何使用 LXD profile 启动一个容器

使用 profile devprofile 来启动一个新容器:

$ lxc launch --profile devprofile ubuntu:x mydev

然后访问该容器来查看我们的指令是否生效:

$ lxc exec mydev bash
root@mydev:~# ps ax
 PID TTY STAT TIME COMMAND
 1 ? Ss 0:00 /sbin/init
 ...
 427 ? Ss 0:00 /usr/bin/python3 /usr/bin/cloud-init modules --mode=f
 430 ? S 0:00 /bin/sh -c tee -a /var/log/cloud-init-output.log
 431 ? S 0:00 tee -a /var/log/cloud-init-output.log
 432 ? S 0:00 /usr/bin/apt-get --option=Dpkg::Options::=--force-con
 437 ? S 0:00 /usr/lib/apt/methods/http
 438 ? S 0:00 /usr/lib/apt/methods/http
 440 ? S 0:00 /usr/lib/apt/methods/gpgv
 570 ? Ss 0:00 bash
 624 ? S 0:00 /usr/lib/apt/methods/store
 625 ? R+ 0:00 ps ax
root@mydev:~#

如果我们连接得够快,通过 ps ax 将能够看到系统正在更新软件。我们可以从 /var/log/cloud-init-output.log 看到完整的日志:

Generating locales (this might take a while)...
 es_ES.UTF-8... done
Generation complete.

以上可以看出 locale 已经被更改了。root 用户还是保持默认的 C.UTF-8,只有非 root 用户 ubuntu 使用了新的locale 设置。

Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Get:3 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]

以上是安装软件包之前执行的 apt update

The following packages will be upgraded:
 libdrm2 libseccomp2 squashfs-tools unattended-upgrades
4 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 211 kB of archives.

以上是在执行 package_upgrade: true 和安装软件包。

The following NEW packages will be installed:
 binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5
 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl

以上是我们安装 build-essential 软件包的指令。

runcmd 执行的结果如何?

root@mydev:~# ls -l /tmp/
total 1
-rw-r--r-- 1 root root 0 Jan 3 15:23 simos_was_here
root@mydev:~#

可见它已经生效了!

结论

当我们启动 LXD 容器的时候,我们常常需要默认启用一些配置,并且希望能够避免重复工作。通常解决这个问题的方法是创建 LXD profile,然后把需要的配置添加进去。最后,当我们启动新的容器时,只需要应用该 LXD profile 即可。


via: https://blog.simos.info/how-to-preconfigure-lxd-containers-with-cloud-init/

作者:Simos Xenitellis 译者:kaneg 校对:wxy

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

概要:还在 Linux 中寻找 Microsoft Office 吗? 这里有一些最好的在 Linux 平台下替代 Microsoft Office 的开源软件。

办公套件是任何操作系统的必备品。很难想象没有 Office 软件的桌面操作系统。虽然 Windows 有 MS Office 套件,Mac OS X 也有它自己的 iWork,但其他很多办公套件都是专门针对这些操作系统的,Linux 也有自己的办公套件。

在本文中,我会列举一些在 Linux 平台替代 Microsoft Office 的办公软件。

Linux 最好的 MS Office 开源替代软件

Best Microsoft office alternatives for Linux

在我们看 MS Office 的替代软件之前,我们先来看看在一个像样的办公套件中有一些什么:

  • 文字处理器
  • 电子表格
  • 演示功能

我知道 Microsoft Office 提供了比上述三种工具更多的工具,但事实上,您主要使用这三个工具。开源办公套件并不限于只有这三种产品。其中有一些套件提供了一些额外的工具,但我们的重点将放在上述工具上。

让我们看看在 Linux 上有什么办公套件:

6. Apache OpenOffice

OpenOffice Logo

Apache OpenOffice 或简单的称为 OpenOffice 有一段名称/所有者变更的历史。 它于 1999 年由 Sun Microsystems 公司开发,后来改名为 OpenOffice,将它作为一个与 MS Office 对抗的自由开源的替代软件。 当 Oracle 在 2010 年收购 Sun 公司后,一年之后便停止开发 OpenOffice。 最后是 Apache 支持它,现在被称为 Apache OpenOffice。

Apache OpenOffice 可用于多种平台,包括 Linux、Windows、Mac OS X、Unix、BSD。 除了 OpenDocument 格式外,它还支持 MS Office 文件。 办公套件包含以下应用程序:Writer、Calc、Impress、Base、Draw、Math。

安装 OpenOffice 是一件痛苦的事,因为它没有提供一个友好的安装程序。另外,有传言说 OpenOffice 开发可能已经停滞。 这是我不推荐的两个主要原因。 出于历史目的,我在这里列出它。

5. Feng Office

Feng Office logo

Feng Office 以前被称为 OpenGoo。 这不是一个常规的办公套件。 它完全专注于在线办公,如 Google 文档一样。 换句话说,这是一个开源协作平台

Feng Office 不支持桌面使用,因此如果您想在单个 Linux 桌面上使用它,这个可能无法实现。 另一方面,如果你有一个小企业、一个机构或其他组织,你可以尝试将其部署在本地服务器上。

4. Siag Office

SIAG Office logo

Siag 是一个非常轻量级的办公套件,适用于类 Unix 系统,可以在 16MB 的系统上运行。 由于它非常轻便,因此缺少标准办公套件中的许多功能。 但小即是美,不是吗? 它具有办公套件的所有必要功能,可以在轻量级 Linux 发行版上“正常工作”。它是 Damn Small Linux 默认安装软件。(LCTT 译注:根据官网,现已不是默认安装软件)

3. Calligra Suite

Calligra free and Open Source office logo

Calligra,以前被称为 KOffice,是 KDE 中默认的 Office 套件。 它支持 Mac OS X、Windows、Linux、FreeBSD 系统。 它也曾经推出 Android 版本。 但不幸的是,后续没有继续支持 Android。 它拥有办公套件所需的必要应用程序以及一些额外的应用程序,如用于绘制流程图的 Flow 和用于项目管理的 Plane。

Calligra 最近的发展产生了相当大的影响,很有可能成为 LibreOffice 的替代品

2. ONLYOFFICE

ONLYOFFICE is Linux alternative to Microsoft Office

ONLYOFFICE 是办公套件市场上的新玩家,它更专注于协作部分。 企业(甚至个人)可以将其部署到自己的服务器上,以获得类似 Google Docs 之类的协作办公套件。

别担心,您不是必须将其安装在服务器上。有一个免费的开源桌面版本 ONLYOFFICE。 您甚至可以获取 .deb 和 .rpm 二进制文件,以便将其安装在 Linux 桌面系统上。

1. LibreOffice

LibreOffice logo

当 Oracle 决定停止 OpenOffice 的开发时,是文档基金会将其复制分发,这就是我们所熟知的 Libre-Office。从那时起,许多 Linux 发行版都将 OpenOffice 替换为 LibreOffice 作为它们的默认办公应用程序。

它适用于 Linux,Windows 和 Mac OS X,这使得在跨平台环境中易于使用。 和 Apache OpenOffice 一样,这也包括了除了 OpenDocument 格式以外的对 MS Office 文件的支持。 它还包含与 Apache OpenOffice 相同的应用程序。

您还可以使用 LibreOffice 作为 Collabora Online 的协作平台。 基本上,LibreOffice 是一个完整的软件包,无疑是 Linux、Windows 和 MacOS 的最佳 Microsoft Office 替代品

你认为呢?

我希望 Microsoft Office 的这些开源替代软件可以节省您的资金。 您会使用哪种开源生产力办公套件?


via: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/

作者:Abhishek Prakash 译者:amwps290 校对:wxy

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

是不是总是想要 更快的 torrent 速度?不管现在的速度有多块,但总是无法对此满足。我们对 torrent 速度的痴迷使我们经常从包括 YouTube 视频在内的许多网站上寻找并应用各种所谓的技巧。但是相信我,从小到大我就没发现哪个技巧有用过。因此本文我们就就来看看,为什么尝试提高 torrent 速度是行不通的。

影响速度的因素

本地因素

从下图中可以看到 3 台电脑分别对应的 A、B、C 三个用户。A 和 B 本地相连,而 C 的位置则比较远,它与本地之间有 1、2、3 三个连接点。

若用户 A 和用户 B 之间要分享文件,他们之间直接分享就能达到最大速度了而无需使用 torrent。这个速度跟互联网什么的都没有关系。

  • 网线的性能
  • 网卡的性能
  • 路由器的性能

当谈到 torrent 的时候,人们都是在说一些很复杂的东西,但是却总是不得要点。

LAN wire,network cards,router

现在我们谈论的是本地文件分享,目前较新一点的网卡速率大约 1 Gigabit 左右。常见的路由器大约 300 Megabits 而网线大概能达到 100 Megabits。当然具体的配置可能不一样,我这里只是给一个一般性的例子。

由于你有一个 1 Gigabit 的网卡,你可能会觉得你的下载速度应该达到 125 Megabytes。但是路由器只允许传输 300 Megabits 也就是 30 Megabyte。

即使你把目标降到 30 Megabytes,然而你连接到路由器的电缆/网线的性能最多只有 100 megabits 也就是 10 MegaBytes。这是一个纯粹的瓶颈问题,由一个薄弱的环节影响到了其他强健部分,也就是说这个传输速率只能达到 10 Megabytes,即电缆的极限速度。现在想象有一个 torrent 即使能够用最大速度进行下载,那也会由于你的硬件不够强大而导致瓶颈。

外部因素

现在再来看一下这幅图。用户 C 在很遥远的某个地方。甚至可能在另一个国家。

how torrent works

假设这个用户创建了一个 torrent 而你想去下载它。第一个问题就是我们刚才讨论过的,你不可能跨越 10 Megabyte 这道坎。

第二,由于 C 与本地之间多个有连接点,其中一个点就有可能成为瓶颈所在,可能由于繁重的流量和相对薄弱的硬件导致了缓慢的速度。

做种者与吸血者

关于此已经有了太多的讨论,总的想法就是搜索更多的种子,但要注意上面的那些因素,有一个很好的种子提供者,但是跟我之间的连接不好的话那也是无济于事的。通常,这不可能发生,因为我们也不是唯一下载这个资源的人,一般都会有一些在本地的人已经下载好了这个文件并已经在做种了。

结论

我们尝试搞清楚哪些因素影响了 torrent 速度的好坏。不管我们如何用软件进行优化,大多数时候是这是由于物理瓶颈导致的。我从来不关心那些软件,使用默认配置对我来说就够了。

希望你会喜欢这篇文章,有什么想法敬请留言。


via: http://www.theitstuff.com/increase-torrent-speed-will-never-work

作者:Rishabh Kandari 译者:lujun9972 校对:wxy

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

EncryptPad 是一个自由开源软件,它通过简单方便的图形界面和命令行接口来查看和修改加密的文本,它使用 OpenPGP RFC 4880 文件格式。通过 EncryptPad,你可以很容易的加密或者解密文件。你能够像保存密码、信用卡信息等私人信息,并使用密码或者密钥文件来访问。

特性

  • 支持 windows、Linux 和 Max OS。
  • 可定制的密码生成器,可生成健壮的密码。
  • 随机的密钥文件和密码生成器。
  • 支持 GPG 和 EPD 文件格式。
  • 能够通过 CURL 自动从远程远程仓库下载密钥。
  • 密钥文件的路径能够存储在加密的文件中。如果这样做的话,你不需要每次打开文件都指定密钥文件。
  • 提供只读模式来防止文件被修改。
  • 可加密二进制文件,例如图片、视频、归档等。

在这份教程中,我们将学习如何在 Ubuntu 16.04 中安装和使用 EncryptPad。

环境要求

  • 在系统上安装了 Ubuntu 16.04 桌面版本。
  • 在系统上有 sudo 的权限的普通用户。

安装 EncryptPad

在默认情况下,EncryPad 在 Ubuntu 16.04 的默认仓库是不存在的。你需要安装一个额外的仓库。你能够通过下面的命令来添加它 :

sudo apt-add-repository ppa:nilaimogard/webupd8

下一步,用下面的命令来更新仓库:

sudo apt-get update -y

最后一步,通过下面命令安装 EncryptPad:

sudo apt-get install encryptpad encryptcli -y

当 EncryptPad 安装完成后,你可以在 Ubuntu 的 Dash 上找到它。

使用 EncryptPad 生成密钥和密码

现在,在 Ubunntu Dash 上输入 encryptpad,你能够在你的屏幕上看到下面的图片 :

Ubuntu DeskTop

下一步,点击 EncryptPad 的图标。你能够看到 EncryptPad 的界面,它是一个简单的文本编辑器,带有顶部菜单栏。

EncryptPad screen

首先,你需要生成一个密钥文件和密码用于加密/解密任务。点击顶部菜单栏中的 “Encryption->Generate Key”,你会看见下面的界面:

Generate key

选择文件保存的路径,点击 “OK” 按钮,你将看到下面的界面:

select path

输入密钥文件的密码,点击 “OK” 按钮 ,你将看到下面的界面:

last step

点击 “yes” 按钮来完成该过程。

加密和解密文件

现在,密钥文件和密码都已经生成了。可以执行加密和解密操作了。在这个文件编辑器中打开一个文件文件,点击 “encryption” 图标 ,你会看见下面的界面:

Encry operation

提供需要加密的文件和指定输出的文件,提供密码和前面产生的密钥文件。点击 “Start” 按钮来开始加密的进程。当文件被成功的加密,会出现下面的界面:

Success Encrypt

文件已经被该密码和密钥文件加密了。

如果你想解密被加密后的文件,打开 EncryptPad ,点击 “File Encryption” ,选择 “Decryption” 操作,提供加密文件的位置和你要保存输出的解密文件的位置,然后提供密钥文件地址,点击 “Start” 按钮,它将要求你输入密码,输入你先前加密使用的密码,点击 “OK” 按钮开始解密过程。当该过程成功完成,你会看到 “File has been decrypted successfully” 的消息 。

decrypt []

注意:

如果你遗忘了你的密码或者丢失了密钥文件,就没有其他的方法可以打开你的加密信息了。对于 EncrypePad 所支持的格式是没有后门的。


via: https://www.howtoforge.com/tutorial/how-to-install-and-use-encryptpad-on-ubuntu-1604/

作者:Hitesh Jethva 译者:singledo 校对:wxy

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

当你在 Web 浏览器或任何 GUI 登录中输入密码时,密码会被标记成星号 ******** 或圆点符号 ••••••••••••• 。这是内置的安全机制,以防止你附近的用户看到你的密码。但是当你在终端输入密码来执行任何 sudosu 的管理任务时,你不会在输入密码的时候看见星号或者圆点符号。它不会有任何输入密码的视觉指示,也不会有任何光标移动,什么也没有。你不知道你是否输入了所有的字符。你只会看到一个空白的屏幕!

看看下面的截图。

正如你在上面的图片中看到的,我已经输入了密码,但没有任何指示(星号或圆点符号)。现在,我不确定我是否输入了所有密码。这个安全机制也可以防止你附近的人猜测密码长度。当然,这种行为可以改变。这是本指南要说的。这并不困难。请继续阅读。

当你在终端输入密码时显示星号

要在终端输入密码时显示星号,我们需要在 /etc/sudoers 中做一些小修改。在做任何更改之前,最好备份这个文件。为此,只需运行:

sudo cp /etc/sudoers{,.bak}

上述命令将 /etc/sudoers 备份成名为 /etc/sudoers.bak。你可以恢复它,以防万一在编辑文件后出错。

接下来,使用下面的命令编辑 /etc/sudoers

sudo visudo

找到下面这行:

Defaults env_reset

在该行的末尾添加一个额外的单词 ,pwfeedback,如下所示。

Defaults env_reset,pwfeedback

然后,按下 CTRL + xy 保存并关闭文件。重新启动终端以使更改生效。

现在,当你在终端输入密码时,你会看到星号。

如果你对在终端输入密码时看不到密码感到不舒服,那么这个小技巧会有帮助。请注意,当你输入输入密码时其他用户就可以预测你的密码长度。如果你不介意,请按照上述方法进行更改,以使你的密码可见(当然,显示为星号!)。

现在就是这样了。还有更好的东西。敬请关注!

干杯!


via: https://www.ostechnix.com/display-asterisks-type-password-terminal/

作者:SK 译者:geekpi 校对:wxy

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

如果你听到一个 13 岁的黑客吹嘘他是多么的牛逼,是有可能的,因为有 Kali Linux 的存在。尽管有可能会被称为“脚本小子”,但是事实上,Kali 仍旧是安全专家手头的重要工具(或工具集)。

Kali 是一个基于 Debian 的 Linux 发行版。它的目标就是为了简单:在一个实用的工具包里尽可能多的包含渗透和审计工具。Kali 实现了这个目标。大多数做安全测试的开源工具都被囊括在内。

相关4 个极好的为隐私和安全设计的 Linux 发行版

为什么是 Kali?

 title=

Kali 是由 Offensive Security 公司开发和维护的。它在安全领域是一家知名的、值得信赖的公司,它甚至还有一些受人尊敬的认证,来对安全从业人员做资格认证。

Kali 也是一个简便的安全解决方案。Kali 并不要求你自己去维护一个 Linux 系统,或者你自己去收集软件和依赖项。它是一个“交钥匙工程”。所有这些繁杂的工作都不需要你去考虑,因此,你只需要专注于要审计的真实工作上,而不需要去考虑准备测试系统。

如何使用它?

Kali 是一个 Linux 发行版。与任何一个其它的 Linux 发行版一样,你可以将它永久安装到一个硬盘上。那样它会工作的更好,但是你不能将它作为一个日常使用的操作系统。因为它是为渗透测试构建的,这就是你使用它的全部理由。

最好是将 Kali 制作为自启动发行版。你可以将 Kali 刻录到一张 DVD 或者是制作到一个自启动 U 盘上来运行它。你没有必要在一个 Kali 上安装任何软件或者保存任何文件。你可以在需要测试一个系统时随时来启动它。它也有非常好的灵活性,可以让运行 Kali 的机器随时运行在想要测试的网络上。

Kali 可以做什么?

Kali 里面有很多的安全工具而不是别的。这就是它能做的事。不管怎么说,Kali 就是一个安全工具。

 title=

它有像 NMap 和 Wireskark 这样的经典信息采集工具。

 title=

Kali 也有面向 WiFi 的工具,像 Aircrack-ng、Kismet、以及 Pixie。

对于破解密码,它也有像 Hydra、Crunch、Hashcat、以及 John the Ripper 这样的工具。

 title=

还有更多的成套工具,包括 Metasploit 和 Burp Suite。

这些只是 Kali 缺省内置的一小部分安全工具。完整的了解这些工具需要很多的时间,但是,你可以清楚地看到许多非常流行的工具它都有。

Kali 是为你准备的吗?

Kali 并不是为普通用户准备的。它并不是一个运行在你的笔记本电脑上的普通 Linux 发行版,而是一个很酷的“黑客操作系统“。如果你使用这个操作系统,那么你将会运行着一个缺乏安全保障的系统,因为 Kali 被设计为以 root 权限运行。它自身并不安全,并且它的配置也与普通的 Linux 发行版不一样。它是一个攻击型工具,而不是一个防御型工具。

Kali 并不是个玩具。你可以使用它内置的工具去做一些会产生真实伤害的危险的事(你懂的),那将给你带来很多真实的麻烦。对于一个未受到严格教育的用户来说,做一些严重违法的事情是很容易的,并且之后你就会发现自己被陷入很无助的境地。

说了这么多,但是,Kali 对于一个专业用户来说,它是一个极好的工具。如果你是一个网络管理员,想对你的网络做一个真实的测试,Kali 可以做到你所希望的一切事情。Kali 也有一些优秀的开发工具,用于去实时审计它们的应用程序。

当然,如果你正好有兴趣学习关于安全的知识,你可以在某些受控环境中去使用 Kali,它可以教你学习很多的非常优秀的知识。

Kali Linux 是许多优秀的安全工具的集合。对于专业用户来说,它有难以置信的好处,但是对于一些不怀好意的人来说,也可以产生很多大麻烦。小心地使用 Kali,充分利用它的巨大优势。如果不这样的话,你将在某个地方(你懂的)度过你的余生。


via: https://www.maketecheasier.com/what-is-kali-linux-and-do-you-need-it/

作者:Nick Congleton 译者:qhwdw 校对:wxy

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