System Administration Fundamentals
System Administration Fundamentals tests whether you can keep a Linux host healthy: manage users and groups, control services with systemd, handle storage and mounts, read logs, configure basic networking, and schedule recurring work.
Services and boot
systemd uses unit files. systemctl start nginx starts a service now; systemctl enable nginx creates the boot-time symlink so it starts next boot. enable --now does both. systemctl status shows state and recent log lines. systemctl mask prevents a service from starting at all, even manually, until unmasked.
Users, storage, and logs
useradd creates an account, passwd sets its password, and usermod -aG adds a supplementary group without removing existing ones. Persistent mounts live in /etc/fstab; an error there can delay or block boot, so validate with mount -a before rebooting. Logs are read with journalctl for the systemd journal and files under /var/log for services.
Scheduling
cron runs jobs from crontabs in five time fields: minute, hour, day of month, month, day of week. /etc/crontab includes a user field; a user crontab does not.
Worked example: an administrator installs nginx and wants it running immediately and after reboot. systemctl enable --now nginx is correct: enable handles boot persistence, --now starts it in the current boot. Running only systemctl start nginx leaves the service down at the next boot; running only enable leaves it stopped until reboot.
Traps: confusing enable with start; using usermod -G and accidentally dropping existing groups instead of -aG; editing /etc/fstab and rebooting without testing; and reading only /var/log/messages when the service logs are in the journal. A full filesystem can break logging and package operations, so check df -h early.