Create Users in Linux: adduser vs useradd (With Examples)
Create Linux users with adduser and useradd, set passwords, home directories and shells, add sudo rights, create system users for services, and delete users.
Blog
Linux server administration: Debian, Ubuntu, AlmaLinux, storage, performance and troubleshooting.
Create Linux users with adduser and useradd, set passwords, home directories and shells, add sudo rights, create system users for services, and delete users.
Find the biggest files and directories on a Linux server with find, du, sort and ncdu, including deleted-but-open files and common space hogs to check.
Make Bash scripts fail safely: exit codes, set -e and its pitfalls, set -u, pipefail, trap for cleanup and error reporting, retries, and ShellCheck.
Use 7-Zip on Linux servers: install 7zip or p7zip, create and extract .7z and .zip archives, AES-256 passwords with encrypted names, split volumes, levels.
Set up a fresh AlmaLinux server: dnf updates, a sudo user, SSH keys, firewalld, SELinux, EPEL, automatic security updates and time sync.
Secure a new Ubuntu 24.04 VPS step by step: a sudo user, SSH keys, the UFW firewall, automatic security updates and swap.
Use tr to change case, replace or delete characters, squeeze repeated spaces, strip Windows line endings, and generate random strings, with clear examples.
HugePages and Transparent Huge Pages explained: why Redis, PostgreSQL and MongoDB care, checking THP, setting madvise or never, and static HugePages.
Keep shell and editor configs consistent on every server: a dotfiles Git repo, GNU Stow symlinks, chezmoi templates, new VPS setup, no secrets.
Set up zsh with Oh My Zsh on a Linux server: install, make it your shell, pick a theme, useful plugins like autosuggestions, keep it fast, stay safe.
Understand /dev on Linux: block vs character devices, disks like /dev/vda, partitions, /dev/null, /dev/zero and /dev/urandom, udev, lsblk, disk safety.
Fix 100% CPU on a VPS: find the process with top and ps, user vs system vs steal time, PHP-FPM and MySQL hogs, bots, crypto-miners, lasting fixes.
Use wget to download files, resume transfers, run in the background, limit speed, authenticate, download lists of URLs and mirror websites recursively.
Count files and folders on Linux with ls, find and wc: recursive counts, counts by extension, per-directory totals, hidden files, inode usage, and hotspots.
Upgrade Ubuntu Server from one LTS to the next: back up, update first, run do-release-upgrade over SSH, handle config prompts and PPAs, then verify.
Read user input in Bash with read: prompts, hidden passwords, timeouts, defaults, yes/no confirmations, reading files line by line, and splitting into fields.
Turn input into command arguments with xargs: handling spaces safely with -0, placing arguments with -I, batching with -n, running jobs in parallel with -P.
How Linux cleans /tmp and /var/tmp: tmpfs vs disk, systemd-tmpfiles rules, PrivateTmp, safely deleting old temp files, PHP sessions, caches, and security.
Monitor changing output with watch: set the interval, highlight differences, exit on change, use pipes and quotes correctly, with practical server examples.
Create Bash aliases, make them permanent in .bashrc, use functions when you need arguments, bypass aliases, plus a list of useful server aliases.
Recover an unbootable Linux server from the VNC console: emergency and rescue modes, reset a lost root password, fix fstab, and when to reinstall.
Linux logs explained: syslog, auth.log, kern.log, package, web and database logs, the systemd journal, reading them efficiently, rotation, and disk space.
Create isolated network stacks with ip netns: veth pairs, NAT to the internet, running apps inside, and how Docker and per-app VPN routing use namespaces.
Use smartmontools to read SMART data on SATA and NVMe drives, interpret reallocated sectors and wear, run self-tests, and set up smartd alerts.