In this chapter, we learned how to configure Kali Linux. We configured network settings, talked about users and groups, and discussed how to create and modify user accounts, set passwords, disable accounts, and manage groups. Finally, we discussed services and explained how to set up and maintain generic services, specifically SSH, PostgreSQL, and Apache.
In a typical desktop installation, you will have NetworkManager already installed and it can be controlled and configured through GNOME’s control center and through the top-right menu.
You can configure the network from the command line with the
ifdowntools, which read their instructions from the
/etc/network/interfacesconfiguration file. An even newer tool, systemd-networkd works with the systemd init system.
By default, the database of Unix users and groups consists of the textual files
/etc/passwd(list of users),
/etc/shadow(encrypted passwords of users),
/etc/group(list of groups), and
/etc/gshadow(encrypted passwords of groups).
You can use the
getentcommand to consult the user database and other system databases.
addusercommand asks a few questions before creating the account, but is a straightforward way to create a new user account.
Several commands can be used to modify specific fields in the user database including:
chfn(change full name and the
GECOS, or general information field),
chsh(change login shell),
chage(change password age), and
passwd -e user(forces the user to change their password the next time they log in).
Each user can be a member of one or multiple groups. Several commands can be used to modify group identity:
newgrpchanges the current group ID,
sgexecutes a command using the supplied alternate group, the
setgidbit can be placed on a directory, causing files created in that directory to automatically belong to the correct group. In addition, the
idcommand displays the current state of a user including a list of their group membership.
You can manually start SSH with
systemctl start sshor permanently enable it with
systemctl enable ssh. The default configuration disables password-based logins for the root user, which means you must first setup SSH keys with
PostgreSQL is a database server. It is rarely useful on its own but is used by many other services to store data.
A typical Kali Linux installation includes the Apache web server, provided by the apache2 package. Being a network service, it is disabled by default. You can manually start it with
systemctl start apache2.
With its default configuration, Apache listens on port 80 (as configured in
/etc/apache2/ports.conf), and serves pages from the
/var/www/html/directory by default (as configured in
Now that we have tackled Linux fundamentals and Kali Linux installation and configuration, let’s discuss how to troubleshoot Kali and teach you some tools and tricks to get you back up and running when you run into problems.