linux

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.

Omer Cakmak6 min read
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.

Omer Cakmak7 min read
linux

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.

Omer Cakmak7 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

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.

Omer Cakmak11 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

pam_faillock: Lock User Accounts After Failed Logins on RHEL

Enable pam_faillock on RHEL-family Linux with authselect and faillock.conf, verify SSH lockout after failed passwords, and reset tallies with the faillock command.

Omer Cakmak7 min read
system-administration

Update and Upgrade 389 Directory Server Safely

Update 389 Directory Server safely with dnf, pre-upgrade health checks, verified backups, standalone and rolling replica updates, post-upgrade validation, and recovery when a package update fails.

Deepak Prasad25 min read
system-administration

How to Rebuild initramfs on RHEL with dracut

Rebuild the initramfs image with dracut for one kernel or every installed kernel, add storage and network drivers, and inspect the result with lsinitrd.

Omer Cakmak17 min read
system-administration

Manage Linux Users and Groups

Manage Linux users and groups with useradd, usermod, userdel, groupadd, primary and supplementary groups, account defaults, and ownership checks.

Deepak Prasad15 min read
system-administration

Configure Chrony Time Synchronization in Linux

Configure Chrony NTP on Linux, verify time synchronization with chronyc, force clock correction, troubleshoot sync problems, and optionally serve LAN clients.

Deepak Prasad15 min read
system-administration

Reset the Directory Manager Password in 389 Directory Server

Reset or change the Directory Manager password in 389 Directory Server with online dsconf over LDAPS, offline pwdhash and dse.ldif editing, verification, rollback, and per-replica rollout.

Deepak Prasad9 min read
system-administration

Troubleshoot Slow LDAP Searches in 389 Directory Server

Troubleshoot slow LDAP searches in 389 Directory Server using client timing, access-log metrics, unindexed-filter notes, indexes, caches, and replica comparison.

Deepak Prasad14 min read
system-administration

Fix Missing or Stale memberOf Attributes in 389 Directory Server

Fix missing or stale memberOf in 389 Directory Server by checking group data, plug-in scope, fix-up filters, shared configuration, and replication.

Deepak Prasad14 min read
system-administration

Fix LDAP Unwilling to Perform Error 53 in 389 Directory Server

Fix LDAP error 53 in 389 Directory Server by reading the additional info line, then checking password policy, read-only mode, RootDN Access Control, TLS SSF, and access logs.

Deepak Prasad15 min read
system-administration

Fix LDAP Invalid Credentials Error 49 in 389 Directory Server

Fix LDAP error 49 in 389 Directory Server by checking the password, bind DN, account state, access logs, application secrets, and replication credentials.

Deepak Prasad12 min read
system-administration

389 Directory Server Password Storage Schemes Explained

Understand how 389 Directory Server hashes LDAP passwords, inspect userPassword prefixes, change the global storage scheme, migrate legacy hashes after successful binds, and test application compatibility.

Deepak Prasad17 min read
system-administration

Install and Configure 389 Directory Server

Install 389 Directory Server, create an LDAP instance with dscreate, configure a directory suffix, verify the service, and test LDAP access.

Deepak Prasad21 min read
system-administration

Fix LDAP Working but LDAPS Failing in 389 Directory Server

Fix LDAP works but LDAPS fails in 389 Directory Server by checking port 636, the TLS handshake, client CA trust, hostname matching, server certificates, and access logs.

Deepak Prasad15 min read
system-administration

Fix LDAP Object Class Violation Error 65 in 389 Directory Server

Fix LDAP error 65 in 389 Directory Server by reading the additional info line, then checking object class MUST and MAY rules, entry state, custom schema, plug-ins, and replica schema parity.

Deepak Prasad13 min read
system-administration

Fix LDAP Insufficient Access Error 50 in 389 Directory Server

Fix LDAP error 50 in 389 Directory Server by checking ACIs on the target and its parents, group membership, deny rules, Get Effective Rights, and access logs.

Deepak Prasad12 min read
system-administration

Configure Apache LDAP Authentication with 389 Directory Server

Configure Apache LDAP authentication with 389 Directory Server using mod_authnz_ldap, StartTLS, group authorization, and troubleshooting.

Deepak Prasad17 min read
system-administration

Store SSH Public Keys in 389 Directory Server with SSSD

Store SSH public keys in 389 Directory Server, configure SSSD and OpenSSH key lookup, and test key addition, rotation, and revocation.

Deepak Prasad13 min read