โ† Linux Administration
๐Ÿง Linux Admin

Common Issues in Linux Administration โ€” Part 2

Issues 6โ€“10: user authentication failures, package errors, kernel panics, SELinux denials, and NTP sync โ€” with the exact commands to resolve each.

โ„น๏ธ
Part 2 of 2: Covers issues 6โ€“10. See Part 1 for disk space, CPU, networking, services, and permissions.
User Authentication Issues

SSH failures and "Access denied" errors โ€” trace through PAM, shadow, and shell configuration.

passwd <username>                    # reset password
usermod -s /bin/bash <username>     # fix shell if /sbin/nologin
cat /etc/shadow | grep <username>   # check account status
tail -f /var/log/secure              # RHEL auth log
tail -f /var/log/auth.log            # Debian/Ubuntu auth log

Package Management Errors

Broken dependencies and missing repos โ€” clean cache first, then try again.

# Debian / Ubuntu:
apt update && apt upgrade
apt --fix-broken install
dpkg --configure -a

# RHEL / CentOS / AlmaLinux:
yum clean all && yum update
dnf distro-sync

Kernel Panics / System Freezes

Check kernel logs after reboot, then update or roll back the kernel.

cat /var/log/kern.log | tail -100   # kernel log (Debian)
journalctl -k --since yesterday      # kernel log (systemd)

# Update kernel:
apt upgrade linux-image-generic      # Debian/Ubuntu
yum update kernel                    # RHEL/CentOS

# List installed kernels and reboot to previous:
awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg

SELinux / AppArmor Denials

Services silently fail when SELinux blocks access โ€” audit2allow helps generate the correct fix.

getenforce                          # check mode: Enforcing/Permissive
cat /var/log/audit/audit.log | tail # see recent denials
audit2why < /var/log/audit/audit.log
audit2allow -a                      # suggest policy changes

# Temporary permissive mode for testing:
setenforce 0

Time Synchronisation Issues

Kerberos and SSL failures often stem from clock skew โ€” verify and fix NTP sync.

timedatectl                          # show current time and NTP status
timedatectl set-ntp true             # enable NTP sync
systemctl restart chronyd            # restart chrony (RHEL)
systemctl restart systemd-timesyncd  # restart timesyncd (Ubuntu)
chronyc tracking                     # verify sync details