In a previous tutorial we discussed about the /etc/fstab file, and how it is used to declare the filesystems which should be mounted on boot. In the pre-Systemd era, filesystem where mounted in the order specified in the /etc/fstab file; on modern Linux distributions, instead, for a faster boot, filesystem are mounted in parallel. Systemd manages the mounting of filesystems via specifically designed units automatically generated from /etc/fstab entries. For these reasons a different strategy must be adopted to establish the dependency between two filesystems, and therefore to set their correct mount order.
KVM (Kernel-based Virtual Machine) is the virtualization solution (type 1 hypervisor) included in the Linux kernel, which, by default, is used together with QEMU, the userspace software which actually performs the guest systems emulation (type 2 hypervisor). In a previous tutorial we saw how to create and manage KVM virtual machines from the command line; in this article, instead, we will learn how to create and manage guest systems snapshots using tools like virsh and virt-manager.
SDDM (Simple Desktop Display Manager) is a modern, free and open source Display Manager available on Linux and other Unix platforms like FreeBSD. It works both with X11 and Wayland, and is based on QtQuick, a framework to build QML applications. SDDM allows a great degree of customization and; thanks to this, a lot of custom themes are available for it.
When we need to schedule a task on a Linux system we can use utilities like cron or systemd-timers. Various implementations of cron exist, but they have in common the fact that they run as a system service, and are designed to be used on systems which are always up and running, like servers. When we need to schedule a task on a desktop or a notebook, which are turned off more often, we can use anacron instead.
In previous tutorials we discussed Ansible, a great tool we can use for automation and provisioning. We talked about basic Ansible concepts, we saw some of the most used Ansible modules, how to manage variables and how to perform basic loops in playbooks; now it’s time to see how to protect sensitive information which sometimes may be needed to accomplish some tasks. In order to protect sensitive information when using Ansible, we encrypt them with Ansible Vault.
Having a reliable backup of our GPG (Gnu Privacy Guard) secret key is not optional: the key represents our identity, and loosing it could potentially be a disaster. Creating a backup of our keys and sub-keys is quite a simple thing to do using gpg, and the resulting files can be easily backed up on one or more devices. Electronic devices such USB drives or hard disks, however, tend to fail, and usually in the most inappropriate times; therefore as an extreme resort, we may want to print our keys to paper.
One of the things that make Linux-based operating systems great is the high degree of customization they offer us. We can customize and adapt (almost) everything to our needs, from the options the kernel is compiled with, to the desktop environment. On any Linux distribution, the terminal emulator is an essential tool for power users and system administrators. Starship is a free and open source plugin written in rust we can use to customize our favorite shell prompt by using a variety of modules.
PyCharm is a professional Python IDE (Integrated Development Environment) developed by JetBrains, which supports a lot of features like code completion, refactoring, debugging, etc. Two versions of the IDE exist: the “Professional” version, which must be purchased, and the free, “Community” version, which is based on open source software, and can be downloaded and installed free of charge. Various methods can be used to install the IDE on Linux.
Samba is a free and open source interoperability suite of programs which allows us to share files and printers between machines running Linux or Windows. A Samba share is pretty easy to configure and can easily be accessed on clients, since the vast majority of Linux file explorers has built-in support samba. In certain situations, however, we may want to mount a Samba share at boot, just like a normal filesystem on a specified mountpoint.
I3 is one of the most used tiling window managers on Linux. A tiling window manager arranges windows in a non-overlapping way: this allows us to use screen space efficiently, but can require a little bit of time to get used to.
SSL is a protocol used to encrypt and authenticate data on networks, typically between a server and a client. The SSL protocol, and its successor, TLS, use asymmetric encryption which is based on two keys: a private and a public one.