Articles by Omer Cakmak
How to Find and Fix Memory Leaks in Linux Applications
Read LeakSanitizer and Valgrind reports down to the line that owns the memory, use the flags that add detail, attribute growth with Massif, and query a running process with vgdb so you fix the cause instead of only …
How to Install libc.so.6 on Linux (glibc Package, Not a Download)
Diagnose libc.so.6 errors by message type — GLIBC_2.xx not found, cannot open shared object file, wrong ELF class, or damaged system libc — then fix with the matching glibc package, multilib, rebuild, container, or …
Configure Fail2ban to Protect SSH on Linux
Install Fail2ban, enable the sshd jail with sane bantime and ignoreip values, verify bans after failed SSH logins on RHEL and Debian, and unban trusted client addresses when needed.
Found a Swap File by the Name: Fix Vim .swp Warnings (E325)
Fix Vim E325 Found a swap file by the name by reading the .swp prompt, recovering after a crash, or removing a stale swap file once no editor owns it — not Linux swap memory from mkswap.
Fix SSH No Route to Host: Routing, Firewall, and sshd Checks
Diagnose SSH no route to host with TCP port tests, ip route get, remote firewalld and sshd checks, and learn when the message means a firewall REJECT instead of a missing route.
Run Multiple Commands Over SSH on Linux
Chain remote commands over SSH with semicolons, &&, subshells, bash -s, and here documents, and pick the pattern that matches whether every step must run or stop on failure.
Long-Running Commands Over SSH: Keep Jobs Running After Disconnect
Run backups, builds, and other long jobs over SSH with explicit I/O redirection, nohup, setsid, tmux, or disown so work continues after the terminal closes and output lands in a log you can read later.
Enable UTF-8 Locale on Linux
Set a UTF-8 system locale with localectl or update-locale, confirm with locale and locale charmap, and fix missing-locale warnings on RHEL and Debian-family Linux.
Fix RPM Failed Dependencies on Install and Remove
Fix error Failed dependencies when installing a local RPM with dnf install, list requirements with dnf repoquery, install offline RPM bundles, and remove packages safely on RHEL family systems.
Enable Persistent Logging in systemd-journald on Linux
Store systemd-journald logs on disk under /var/log/journal with a Storage=persistent drop-in, restart systemd-journald, flush runtime logs with journalctl, and verify earlier boots with journalctl --list-boots.
Idle SSH Sessions: Disconnect or Keep Them Alive on Linux
Set ClientAliveInterval and ClientAliveCountMax on sshd to drop unresponsive SSH clients, use ServerAliveInterval on the OpenSSH client to keep sessions alive through NAT, and understand how TCPKeepAlive differs.
Sort Files and Directories by Size with du on Linux
Find the largest directories and files under a path with du piped to sort, using --max-depth for folder totals, -a for individual files, numeric -k filters, and head to keep the top results.
Disable SELinux in Linux (Runtime, Permissive, and Permanent)
Change or disable SELinux on Linux with setenforce for runtime permissive mode, semanage for one domain, grubby --args selinux=0 for permanent disable on RHEL 9 and 10, and a one-time GRUB edit when the system will not …
Detect Rootkits on Linux with rkhunter
Install rkhunter from EPEL or apt, update its signature database, baseline file properties with propupd, run a non-interactive check, and interpret warnings in rkhunter.log on RHEL and Debian-family hosts.
Disable ICMP Timestamp Responses in Linux
Block ICMP timestamp request (type 13) and reply (type 14) on Linux with firewalld rich rules, nftables, iptables, or UFW, then verify from a second host with nping before compliance scans run again.
Disk Types and Interface Types in Linux
Learn how Linux disk media types (HDD, SSD, optical) differ from interface and transport types (SATA, SAS, NVMe, Fibre Channel, USB), and how device names such as sda and nvme0n1 map to each layer.
How to Delay a Reboot in Linux
Delay a Linux reboot for a maintenance window with shutdown -r +minutes, systemctl reboot --when=, or at; notify users, confirm the pending job, and cancel if plans change.
Create a systemd Service Unit in Linux
Create a custom systemd .service unit under /etc/systemd/system/, explain Unit Service and Install sections, start and enable it with systemctl, and verify with status and journalctl.
How to Perform tar Incremental Backup on Linux
Take GNU tar listed-incremental backups with a snapshot file, create level 0 and level 1 archives, inspect Y and N file status, and restore by applying the full backup then each incremental in order.
SSH Multiplexing on Linux: Share One Connection
Reuse one authenticated SSH connection for later ssh, scp, and sftp sessions with ControlMaster, ControlPath, and ControlPersist on the OpenSSH client.
How to Copy a Directory Over SSH on Linux
Copy a directory and its contents between Linux hosts with scp -r and rsync -av over SSH, verify the remote layout, and avoid common path mistakes with trailing slashes.
Restrict SFTP Users to a Directory with OpenSSH Chroot
Restrict SFTP users to a chroot directory with OpenSSH ChrootDirectory, ForceCommand internal-sftp, Match blocks in sshd_config, writable upload folders, and SSH public-key authentication.
How to Set Up a Proxy for YUM and DNF Repositories
Configure proxy settings in dnf.conf and yum.repos.d for YUM, DNF 4, and DNF 5 on RHEL-family systems, including authenticated proxies, per-repo overrides, and proxy=_none_.
How to Set SFTP umask in Linux
Set SFTP upload permissions with OpenSSH internal-sftp -u in sshd_config, apply umask per user or group with Match blocks, and understand why umask removes bits but cannot add them.
Secure HTTPS File Transfer with curl and Apache on RHEL
Set up Apache httpd with TLS, WebDAV, and HTTP basic auth on RHEL-family systems, trust the server certificate on the client with curl --cacert, and upload or download files over verified HTTPS.
How to Set the FFmpeg Output Directory on Linux
Set the FFmpeg output directory by including the folder in the output file path after -i, use the current working directory for bare filenames, and set input_dir and output_dir in bash scripts.
SCP vs rsync in Linux: When to Use Each for Remote File Transfer
Compare scp and rsync for Linux file transfer: what each tool does, when to use one-off copy vs repeated sync, SSH security, metadata, resume, and common path mistakes.
pkill -P: Kill Child Processes by Parent PID in Linux
Use pkill -P PARENT_PID . to send SIGTERM to every direct child of a parent process, list them with ps --ppid, and clean up script workers with pkill -P $$ . on EXIT.
Run a Script Before the Linux Login Prompt with systemd
Run a shell script before the console login prompt with systemd using Wants and Before getty-pre.target, then verify with systemctl show and the script log file.
Run a Script Before Shutdown or Reboot with systemd
Run a shell script before shutdown or reboot with systemd using Before=shutdown.target and WantedBy=shutdown.target for cleanup on both poweroff and reboot.

