linux

How to Install Redis on Ubuntu

Install Redis on Ubuntu with sudo apt install redis-server from universe, or add the official packages.redis.io repo for Redis 8.x. Start redis-server with systemd, test with redis-cli ping, set a password, and harden …

Deepak Prasad11 min read
linux

OpenSSH PerSourcePenalties: Block Repeated Failed SSH Connections

OpenSSH PerSourcePenalties on Linux: how sshd temporarily refuses noisy source addresses, how to read defaults with sshd -T, how to fix Not allowed at this time, and how exemptions and MaxAuthTries differ from Fail2ban.

Deepak Prasad22 min read
devops

Fix Terraform S3 BucketAlreadyExists and BucketAlreadyOwnedByYou

Fix Terraform S3 CreateBucket 409 errors — tell BucketAlreadyExists from BucketAlreadyOwnedByYou, understand the global bucket namespace, import an existing bucket into state, or choose a new unique bucket name.

Deepak Prasad8 min read
devops

Fix Terraform S3 Backend Error Acquiring State Lock

Fix Terraform Error acquiring the state lock on an S3 remote backend — tell S3 native .tflock locking apart from legacy DynamoDB locks, read lock metadata, clear stale locks safely, and fix backend and IAM settings.

Deepak Prasad9 min read
devops

Fix Terraform AWS ExpiredToken Session Errors

Fix Terraform AWS ExpiredToken errors caused by expired STS credentials, stale AWS_SESSION_TOKEN variables, or IAM Identity Center sessions. Diagnose the active credentials and refresh them correctly.

Deepak Prasad9 min read
cloud

Configure S3 Bucket as Terraform Backend

Create an encrypted versioned S3 bucket with Terraform, migrate local state with terraform init -migrate-state, enable S3 native locking with use_lockfile on Terraform 1.10+, and verify remote state in the bucket.

Deepak Prasad10 min read
devops

Fix kubectl Unauthorized After Terraform EKS Apply

Fix kubectl Unauthorized after Terraform EKS apply — confirm the AWS identity behind kubectl, list EKS access entries, and grant cluster access with enable_cluster_creator_admin_permissions or access_entries on …

Omer Cakmak10 min read
devops

Fix Terraform AWS UnauthorizedOperation IAM Errors

Fix Terraform AWS UnauthorizedOperation on Ubuntu — confirm which IAM identity runs plan and apply, decode the authorization failure message with the AWS CLI, read the denied API action, and request or attach the missing …

Deepak Prasad7 min read
devops

Fix Terraform Destroy DependencyViolation on AWS VPC

Fix Terraform destroy DependencyViolation on AWS VPC — find subnet ENI and gateway blockers with the AWS CLI, recover when child resources were removed from state with terraform import, and destroy in dependency order.

Deepak Prasad10 min read
devops

Fix Terraform AWS Provider: No Valid Credential Sources Found

Reproduce and fix Terraform AWS provider No valid credential sources found on Ubuntu — shared credentials file, environment variables, named profiles, aws login export-credentials, IAM Identity Center SSO, EC2 instance …

Deepak Prasad10 min read
devops

Provision AWS EC2 Instances with Ansible Playbooks

Provision AWS EC2 instances with Ansible using amazon.aws.ec2_instance. Create a security group, launch and tag Ubuntu instances, and start, stop, query, and terminate EC2 resources.

Deepak Prasad14 min read
linux

Install and Trust a CA Certificate in the Linux System Trust Store

Install a private CA certificate into the Linux system trust store with update-ca-certificates on Debian and Ubuntu or update-ca-trust on RHEL and Fedora, verify the anchor landed, remove it again, and fix the …

Omer Cakmak20 min read
devops

Install Podman on Ubuntu: APT, Versions & Rootless Setup

Install Podman on Ubuntu 22.04, 24.04, and 26.04 with apt, check the Podman version your release ships, verify with podman info, test rootless mode, and run a hello-world container.

Deepak Prasad8 min read
linux

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 …

Omer Cakmak42 min read
linux

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 …

Omer Cakmak12 min read
linux

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.

Omer Cakmak10 min read
linux

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.

Omer Cakmak9 min read
linux

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.

Omer Cakmak10 min read
linux

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.

Omer Cakmak8 min read
linux

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.

Omer Cakmak7 min read
linux

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.

Omer Cakmak6 min read
linux

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.

Omer Cakmak8 min read
linux

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.

Omer Cakmak10 min read
linux

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.

Omer Cakmak7 min read
linux

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.

Omer Cakmak10 min read
linux

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.

Omer Cakmak7 min read
linux

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.

Omer Cakmak5 min read
linux

How to Automate SFTP in Shell Scripts on Linux

Automate SFTP file transfers in Linux shell scripts using sftp batch mode with SSH keys, or password authentication with sshpass or expect when keys are not available.

Omer Cakmak10 min read
linux

How to Install ARPACK on Linux

Install ARPACK runtime and development packages on Ubuntu, Debian, and RHEL-family Linux from distribution repositories, verify libraries with dpkg or rpm and pkg-config, and link a sample Fortran program against …

Omer Cakmak8 min read
linux

How to Add a User to a Group in Linux

Add a user to a supplementary group in Linux with usermod -aG, gpasswd -a, or adduser on Debian. Verify with id, apply changes with newgrp or re-login, and avoid the missing -a mistake.

Omer Cakmak7 min read