android x86 是一个自由而开源的项目，将谷歌制作的安卓系统从 ARM 架构移植到了 x86 架构，可以让用户在他们的桌面电脑上运行安卓系统来享受所有的安卓功能和应用程序及游戏。在前一段时间，android x86 项目完成了安卓 8.1 Oreo 系统的 x86 架构移植。在这篇文章中，我们将解释如何在你的 Linux 系统上安装它，以便你能够随时使用你的安卓 用程序和游戏。在 Linux 上安装安卓 x86 8.1 Oreo准备环境首先，让我们下载 android x86 8.1 Oreo 系统镜像。你可以从这个页面下载它，只需单击 “android-x86\_64-8.1-r1.iso” 文件下的 “View” 按钮。我们将在我们的 Linux 系统上使用 QEMU 来运行 android x86。QEMU 是一个非常好的模拟器软件，它也是自由而开源的，并且在所有主要的 Linux 发行版存储库中都是可用的。在 Ubuntu/Linux Mint/Debian 上安装 QEMU：sudo apt-get install qemu qemu-kvm libvirt-bin在 Fedora 上安装 QEMU：sudo dnf install qemu qemu-kvm对于其它发行版，只需要搜索 “qemu” 和 “qemu-kvm” 软件包，并安装它们。在你安装 QEMU 后，我们将需要运行下面的命令来创建 android.img 文件，它就像某种分配给安卓系统的磁盘空间。所有安卓文件和系统都将位于该镜像文件中：qemu-img create -f qcow2 android.img 15G我们在这里的意思是，我们想为该安卓系统分配一个最大 15GB 的磁盘空间，但是，你可以更改它到你想要的任意大小（确保它至少大于 5GB）。现在，首次启动运行该安卓系统，运行：sudo qemu-system-x86_64 -m 2048 -boot d -enable-kvm -smp 3 -net nic -net user -hda android.img -cdrom /home/mhsabbagh/android-x86_64-8.1-r1.iso将 /home/mhsabbagh/android-x86_64-8.1-r1.iso 替换为你从 android x86 网站下载的文件的路径。关于我们在这里正在使用的其它选项的解释，你可以参考这篇文章。在你运行上面的命令后，该安卓系统将启动：安装系统从这个窗口中，选择 “Advanced options”, 它将引导到下面的菜单，你应如下在其中选择 “Auto\_installation” ：在这以后，安装器将告知你是否想要继续，选择 “Yes”：接下来，安装器将无需你的指示而继续进行：最后，你将收到这个信息，它表示你已经成功安装安卓 8.1 ：现在，关闭 QEMU 窗口即可。启动和使用 安卓 8.1 Oreo现在，安卓系统已经完全安装在你的 android.img 文件中，你应该使用下面的 QEMU 命令来启动它，而不是前面的命令：sudo qemu-system-x86_64 -m 2048 -boot d -enable-kvm -smp 3 -net nic -net user -hda android.img注意，我们所做的只是移除 -cdrom 选项及其参数。这是告诉 QEMU，我们不再想从我们下载的 ISO 文件启动，相反，从这个安装的安卓系统启动。你现在能够看到安卓的启动菜单：然后，你将进入第一个准备向导，选择你的语言并继续：从这里，选择 “Set up as new” 选项：然后，安卓将询问你是否想登录到你当前的谷歌账号。这步骤是可选的，但是这很重要，以便你随后可以使用谷歌 Play 商店：然后，你将需要接受条款：现在，你可以选择你当前的时区：系统将询问你是否想启动一些数据收集功能。如果我是你的话，我将简单地全部关闭它们，像这样：最后，你将有两种启动类型可供选择，我建议你选择 Launcher3 选项，并使其成为默认项：然后，你将看到完整工作的安卓系统主屏幕：从现在起，你可以做你想做的任何事情；你可以使用内置的安卓应用程序，或者你可以浏览你的系统设置来根据你的喜好进行调整。你可以更改你的系统的外观和体验，或者你可以像示例一样运行 Chrome ：你可以开始从谷歌 Play 商店安装一些应用程序程序，像 WhatsApp 和其它的应用程序，以供你自己使用：你现在可以用你的系统做任何你想做的事。恭喜！以后如何轻松地运行安卓 8.1 Oreo我们不想总是不得不打开终端窗口，并写那些长长的 QEMU 命令来运行安卓系统，相反，我们想在我们需要时一次单击就运行它。为此，我们将使用下面的命令在 /usr/share/applications 下创建一个名为 android.desktop 的新文件：sudo nano /usr/share/applications/android.desktop并在其中粘贴下面的内容（右键单击然后粘贴）：[Desktop Entry] Name=Android 8.1 Comment=Run Android 8.1 Oreo on Linux using QEMU Icon=phone Exec=bash -c 'pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY qemu-system-x86_64 -m 2048 -boot d -enable-kvm -smp 3 -net nic -net user -hda /home/mhsabbagh/android.img' Terminal=false Type=Application StartupNotify=true Categories=GTK;再强调一次，你必需使用你系统上的本地镜像路径来替换 /home/mhsabbagh/android.img 。然后保存文件（Ctrl+X，然后按 Y，然后按回车）。注意，我们需要使用 pkexec 来使用 root 权限运行 QEMU ，因为从较新的版本开始，普通用户不允许通过 libvirt 访问 KVM 技术；这就是为什么它将每次要求你输入 root 密码的原因。现在，你将在应用程序菜单中看到安卓图标，你可以在你想使用安卓的任何时间来简单地单击该图标，QEMU 程序将启动：总结我们向你展示如何在你的 Linux 系统上安装和运行安卓 8.1 Oreo 。从现在起，在没有其它一些软件的（像 Blutsticks 和类似的方法）的情况下，你可以更容易地完成基于安卓的任务。在这里，你有一个完整工作和功能的安卓系统，你可以随心所欲地操作它，如果一些东西出错，你可以简单地干掉该镜像文件，然后随时再一次重新运行安装程序。你之前尝试过 android x86 吗？你的体验如何？via: https://fosspost.org/tutorials/install-android-8-1-oreo-on-linux作者：M.Hanny Sabbagh 选题：lujun9972 译者：robsean 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
在 Linux 上为你的任务创建一个自定义的系统托盘指示器
系统托盘图标如今仍是一个很神奇的功能。只需要右击图标，然后选择想要的动作，你就可以大幅简化你的生活并且减少日常行为中的大量无用的点击。一说到有用的系统托盘图标，我们很容易就想到 Skype、Dropbox 和 VLC：然而系统托盘图标实际上要更有用得多；你可以根据自己的需求创建自己的系统托盘图标。本指导将会教你通过简单的几个步骤来实现这一目的。前置条件我们将要用 Python 来实现一个自定义的系统托盘指示器。Python 可能已经默安装在所有主流的 Linux 发行版中了，因此你只需要确定一下它已经被安装好了（此处使用版本为 2.7）。另外，我们还需要安装好 gir1.2-appindicator3 包。该库能够让我们很容易就能创建系统图标指示器。在 Ubuntu/Mint/Debian 上安装：sudo apt-get install gir1.2-appindicator3在 Fedora 上安装：sudo dnf install libappindicator-gtk3对于其他发行版，只需要搜索包含 “appindicator” 的包就行了。在 GNOME Shell 3.26 开始，系统托盘图标被删除了。你需要安装 这个扩展（或者其他扩展）来为桌面启用该功能。否则你无法看到我们创建的指示器。基础代码下面是该指示器的基础代码：#!/usr/bin/python import os from gi.repository import Gtk as gtk, AppIndicator3 as appindicator def main(): indicator = appindicator.Indicator.new("customtray", "semi-starred-symbolic", appindicator.IndicatorCategory.APPLICATION_STATUS) indicator.set_status(appindicator.IndicatorStatus.ACTIVE) indicator.set_menu(menu()) gtk.main() def menu(): menu = gtk.Menu() command_one = gtk.MenuItem('My Notes') command_one.connect('activate', note) menu.append(command_one) exittray = gtk.MenuItem('Exit Tray') exittray.connect('activate', quit) menu.append(exittray) menu.show_all() return menu def note(_): os.system("gedit $HOME/Documents/notes.txt") def quit(_): gtk.main_quit() if __name__ == "__main__": main()我们待会会解释一下代码是怎么工作的。但是现在，让我们将该文本保存为 tray.py，然后使用 Python 运行之：python tray.py我们会看到指示器运行起来了，如下图所示：现在，让我们解释一下这个魔法的原理：前三行代码仅仅用来指明 Python 的路径并且导入需要的库。def main() ：此为指示器的主函数。该函数的代码用来初始化并创建指示器。indicator = appindicator.Indicator.new("customtray"，"semi-starred-symbolic"，appindicator.IndicatorCategory.APPLICATION_STATUS) ：这里我们指明创建一个名为 customtray 的新指示器。这是指示器的唯一名称，这样系统就不会与其他运行中的指示器搞混了。同时我们使用名为 semi-starred-symbolic 的图标作为指示器的默认图标。你可以将之改成任何其他值；比如 firefox (如果你希望该指示器使用 FireFox 的图标)，或任何其他你想用的图标名。最后与 APPLICATION_STATUS 相关的部分是指明指示器类别/范围的常规代码。indicator.set_status(appindicator.IndicatorStatus.ACTIVE)：这一行激活指示器。indicator.set_menu(menu())：这里说的是我们想使用 menu() 函数（我们会在后面定义) 来为我们的指示器创建菜单项。这很重要，可以让你右击指示器后看到一个可以实施行为的列表。gtk.main()：运行 GTK 主循环。在 menu() 中我们定义了想要指示器提供的行为或项目。command_one = gtk.MenuItem('My Notes') 仅仅使用文本 “My notes” 来初始化第一个菜单项，接下来 command_one.connect('activate'，note) 将菜单的 activate 信号与后面定义的 note() 函数相连接；换句话说，我们告诉我们的系统：“当该菜单项被点击，运行 note() 函数”。最后，menu.append(command_one) 将菜单项添加到列表中。exittray 相关的行是为了创建一个退出的菜单项，以便让你在想要的时候关闭指示器。menu.show_all() 以及 return menu 只是返回菜单项给指示器的常规代码。在 note(_) 下面是点击 “My Notes” 菜单项时需要执行的代码。这里只是 os.system("gedit $HOME/Documents/notes.txt") 这一句话；os.system 函数允许你在 Python 中运行 shell 命令，因此这里我们写了一行命令来使用 gedit 打开家目录下 Documents 目录中名为 notes.txt 的文件。例如，这个可以称为你今后的日常笔记程序了！添加你所需要的任务你只需要修改代码中的两块地方：在 menu() 中为你想要的任务定义新的菜单项。创建一个新的函数让给该菜单项被点击时执行特定的行为。所以，比如说你想要创建一个新菜单项，在点击后，会使用 VLC 播放硬盘中某个特定的视频/音频文件？要做到这一点，只需要在第 17 行处添加下面三行内容：command_two = gtk.MenuItem('Play video/audio') command_two.connect('activate', play) menu.append(command_two)然后在第 30 行添加下面内容：def play(_): os.system("vlc /home/<username>/Videos/somevideo.mp4")将/home//Videos/somevideo.mp4` 替换成你想要播放的视频/音频文件路径。现在保存该文件然后再次运行该指示器：python tray.py你将会看到：而且当你点击新创建的菜单项时，VLC 会开始播放！要创建其他项目/任务，只需要重复上面步骤即可。但是要小心，需要用其他命令来替换 command_two，比如 command_three，这样在变量之间才不会产生冲突。然后定义新函数，就像 play(_) 函数那样。可能性是无穷的；比如我用这种方法来从网上获取数据（使用 urllib2 库）并显示出来。我也用它来在后台使用 mpg123 命令播放 mp3 文件，而且我还定义了另一个菜单项来 killall mpg123 以随时停止播放音频。比如 Steam 上的 CS:GO 退出很费时间（窗口并不会自动关闭），因此，作为一个变通的方法，我只是最小化窗口然后点击某个自建的菜单项，它会执行 killall -9 csgo_linux64 命令。你可以使用这个指示器来做任何事情：升级系统包、运行其他脚本——字面上的任何事情。自动启动我们希望系统托盘指示器能在系统启动后自动启动，而不用每次都手工运行。要做到这一点，只需要在自启动应用程序中添加下面命令即可（但是你需要将 tray.py 的路径替换成你自己的路径）:nohup python /home/<username>/tray.py &下次重启系统，指示器会在系统启动后自动开始工作了！结论你现在知道了如何为你想要的任务创建自己的系统托盘指示器了。根据每天需要运行的任务的性质和数量，此方法可以节省大量时间。有些人偏爱从命令行创建别名，但是这需要你每次都打开终端窗口或者需要有一个可用的下拉式终端仿真器，而这里，这个系统托盘指示器一直在工作，随时可用。你以前用过这个方法来运行你的任务吗？很想听听你的想法。via: https://fosspost.org/tutorials/custom-system-tray-icon-indicator-linux作者：M.Hanny Sabbagh 选题：lujun9972 译者：lujun9972 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
在你开始使用 Kali Linux 之前必须知道的事情
Kali Linux 在渗透测试和白帽子方面是业界领先的 Linux 发行版。默认情况下，该发行版附带了大量入侵和渗透的工具和软件，并且在全世界都得到了广泛认可。即使在那些甚至可能不知道 Linux 是什么的 Windows 用户中也是如此。由于后者的原因（LCTT 译注：Windows 用户），许多人都试图单独使用 Kali Linux，尽管他们甚至不了解 Linux 系统的基础知识。原因可能各不相同，有的为了玩乐，有的是为了取悦女友而伪装成黑客，有的仅仅是试图破解邻居的 WiFi 网络以免费上网。如果你打算使用 Kali Linux，记住，所有的这些都是不好的事情。在计划使用 Kali Linux 之前，你应该了解一些提示。Kali Linux 不适合初学者Kali Linux 默认 GNOME 桌面如果你是几个月前刚开始使用 Linux 的人，或者你认为自己的知识水平低于平均水平，那么 Kali Linux 就不适合你。如果你打算问“如何在 Kali 上安装 Steam？如何让我的打印机在 Kali 上工作？如何解决 Kali 上的 APT 源错误？”这些东西，那么 Kali Linux 并不适合你。Kali Linux 主要面向想要运行渗透测试套件的专家或想要学习成为白帽子和数字取证的人。但即使你属于后者，普通的 Kali Linux 用户在日常使用时也会遇到很多麻烦。他还被要求以非常谨慎的方式使用工具和软件，而不仅仅是“让我们安装并运行一切”。每一个工具必须小心使用，你安装的每一个软件都必须仔细检查。建议阅读： Linux 系统的组件有什么?普通 Linux 用户都无法自如地使用它。一个更好的方法是花几周时间学习 Linux 及其守护进程、服务、软件、发行版及其工作方式，然后观看几十个关于白帽子攻击的视频和课程，然后再尝试使用 Kali 来应用你学习到的东西。它会让你被黑客攻击Kali Linux 入侵和测试工具在普通的 Linux 系统中，普通用户有一个账户，而 root 用户也有一个单独的账号。但在 Kali Linux 中并非如此。Kali Linux 默认使用 root 账户，不提供普通用户账户。这是因为 Kali 中几乎所有可用的安全工具都需要 root 权限，并且为了避免每分钟要求你输入 root 密码，所以这样设计。当然，你可以简单地创建一个普通用户账户并开始使用它。但是，这种方式仍然不推荐，因为这不是 Kali Linux 系统设计的工作方式。使用普通用户在使用程序，打开端口，调试软件时，你会遇到很多问题，你会发现为什么这个东西不起作用，最终却发现它是一个奇怪的权限错误。另外每次在系统上做任何事情时，你会被每次运行工具都要求输入密码而烦恼。现在，由于你被迫以 root 用户身份使用它，因此你在系统上运行的所有软件也将以 root 权限运行。如果你不知道自己在做什么，那么这很糟糕，因为如果 Firefox 中存在漏洞，并且你访问了一个受感染的网站，那么黑客能够在你的 PC 上获得全部 root 权限并入侵你。如果你使用的是普通用户账户，则会受到限制。此外，你安装和使用的某些工具可能会在你不知情的情况下打开端口并泄露信息，因此如果你不是非常小心，人们可能会以你尝试入侵他们的方式入侵你。如果你曾经访问过与 Kali Linux 相关的 Facebook 群组，你会发现这些群组中几乎有四分之一的帖子是人们在寻求帮助，因为有人入侵了他们。它可以让你入狱Kali Linux 只是提供了软件。那么，如何使用它们完全是你自己的责任。在世界上大多数发达国家，使用针对公共 WiFi 网络或其他设备的渗透测试工具很容易让你入狱。现在不要以为你使用了 Kali 就无法被跟踪，许多系统都配置了复杂的日志记录设备来简单地跟踪试图监听或入侵其网络的人，你可能无意间成为其中的一个，那么它会毁掉你的生活。永远不要对不属于你的设备或网络使用 Kali Linux 系统，也不要明确允许对它们进行入侵。如果你说你不知道你在做什么，在法庭上它不会被当作借口来接受。修改了的内核和软件Kali 基于 Debian（“测试”分支，这意味着 Kali Linux 使用滚动发布模型），因此它使用了 Debian 的大部分软件体系结构，你会发现 Kali Linux 中的大部分软件跟 Debian 中的没什么区别。但是，Kali 修改了一些包来加强安全性并修复了一些可能的漏洞。例如，Kali 使用的 Linux 内核被打了补丁，允许在各种设备上进行无线注入。这些补丁通常在普通内核中不可用。此外，Kali Linux 不依赖于 Debian 服务器和镜像，而是通过自己的服务器构建软件包。以下是最新版本中的默认软件源：deb http://http.kali.org/kali kali-rolling main contrib non-free deb-src http://http.kali.org/kali kali-rolling main contrib non-free这就是为什么，对于某些特定的软件，当你在 Kali Linux 和 Fedora 中使用相同的程序时，你会发现不同的行为。你可以从 git.kali.org 中查看 Kali Linux 软件的完整列表。你还可以在 Kali Linux（GNOME）上找到我们自己生成的已安装包列表。更重要的是，Kali Linux 官方文档极力建议不要添加任何其他第三方软件仓库，因为 Kali Linux 是一个滚动发行版，并且依赖于 Debian 测试分支，由于依赖关系冲突和包钩子，所以你很可能只是添加一个新的仓库源就会破坏系统。不要安装 Kali Linux使用 Kali Linux 在 fosspost.org 上运行 wpscan我在极少数情况下使用 Kali Linux 来测试我部署的软件和服务器。但是，我永远不敢安装它并将其用作主系统。如果你要将其用作主系统，那么你必须保留自己的个人文件、密码、数据以及系统上的所有内容。你还需要安装大量日常使用的软件，以解放你的生活。但正如我们上面提到的，使用 Kali Linux 是非常危险的，应该非常小心地进行，如果你被入侵了，你将丢失所有数据，并且可能会暴露给更多的人。如果你在做一些不合法的事情，你的个人信息也可用于跟踪你。如果你不小心使用这些工具，那么你甚至可能会毁掉自己的数据。即使是专业的白帽子也不建议将其作为主系统安装，而是通过 USB 使用它来进行渗透测试工作，然后再回到普通的 Linux 发行版。底线正如你现在所看到的，使用 Kali 并不是一个轻松的决定。如果你打算成为一个白帽子，你需要使用 Kali 来学习，那么在学习了基础知识并花了几个月的时间使用普通 Linux 系统之后再来学习 Kali。但是小心你正在做的事情，以避免遇到麻烦。如果你打算使用 Kali，或者你需要任何帮助，我很乐意在评论中听到你的想法。via: https://fosspost.org/articles/must-know-before-using-kali-linux作者：M.Hanny Sabbagh 选题：lujun9972 译者：MjSeven 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出