Linux yönetimi, her geliştirici veya DevOps mühendisi için kritik bir beceridir. İşletim sisteminin temel bileşenlerini ustalaşmak, güvenli, verimli ve kararlı ortamlar oluşturmanızı sağlar. Bu rehber, Linux sistem yönetiminin temel taşlarını kapsar: kullanıcılar, dosyalar, paketler, hizmetler ve bakım.
Kullanıcı ve Grup Yönetimi
Etkili kullanıcı yönetimi, savunmanın ilk çizgisidir. Kullanıcıları ve grupları nasıl oluşturacağınızı, değiştireceğinizi ve sileceğinizi anlamalısınız. /etc/passwd ve /etc/shadow dosyaları kullanıcı kimlik bilgilerini ve şifre politikalarını saklar.
# Ev dizini ile yeni bir kullanıcı oluşturun
sudo useradd -m -s /bin/bash jdoe
# Yeni kullanıcı için bir şifre ayarlayın
sudo passwd jdoe
# Kullanıcıyı yükseltilmiş ayrıcalıklar için sudo grubuna ekleyin
sudo usermod -aG sudo jdoe
İzinlerin doğru şekilde uygulandığından emin olmak için her zaman id komutunu kullanarak grup üyeliğini doğrulayın.
Dosya Sistemleri ve İzinler
Linux dosya sistemi hiyerarşisini ve izin modellerini anlamak hayati önem taşır. Linux üç izin türü kullanır: okuma (r), yazma (w) ve çalıştırma (x); bunlar üç kategoriye uygulanır: sahibi, grup ve diğerleri.
# Detaylı izinleri görüntüleyin
ls -l /var/www/html
# Sahipliği özyineleyici olarak değiştirin
sudo chown -R www-data:www-data /var/www/html
# Kısıtlayıcı izinler ayarlayın (dizinler için 755, dosyalar için 644)
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;
Hassas dizinleri güvence altına almak için chmod ve chown komutlarını sıkça kullanın. Mutlaka gerekli olmadıkça hizmetleri root kullanıcısı olarak çalıştırmayın; bunun yerine özel hizmet hesapları kullanın.
Paket Yönetimi
Çoğu Linux dağıtımı ya RPM (Red Hat/CentOS) ya da DEB (Debian/Ubuntu) tabanlı paket yöneticileri kullanır. Yazılımı güncel tutmak, güvenlik ve uyumluluk açısından hayati önem taşır.
# Debian/Ubuntu: Güncelle ve yükselt
sudo apt update
sudo apt upgrade -y
# CentOS/RHEL: Tüm paketleri güncelle
sudo yum update -y
# Veya daha yeni sürümlerde dnf kullanarak:
sudo dnf upgrade -y
Kritik sistem paketlerini yükseltmeden önce bağımlılıkları bozmamak için her zaman değişiklik günlüğünü (changelog) veya sürüm notlarını inceleyin.
systemd ile Hizmet Yönetimi
Modern Linux sistemleri, hizmet yönetimi için systemd'ye güvenir. Hizmetleri başlatma, durdurma ve izleme için standartlaştırılmış bir yol sağlar.
# Bir hizmetin durumunu kontrol edin
sudo systemctl status nginx
# Önyüklemede başlaması için bir hizmeti etkinleştirin
sudo systemctl enable docker
# Yapılandırma değişikliklerinden sonra bir hizmeti yeniden başlatın
sudo systemctl restart apache2
Başlatma hatalarını veya çalışma zamanı hatalarını gidermeye yardımcı olan belirli hizmetler için günlükleri görüntülemek üzere journctl -u service_name kullanın.
Sistem Bakımı
Düzenli bakım, uzun vadeli sistem sağlığını sağlar. Temel görevler arasında disk kullanımını izlemek, eski günlükleri temizlemek ve sistem kaynaklarını yönetmek yer alır.
# Disk kullanımını kontrol edin
df -h
# Temizlenecek büyük dosyaları bulun
sudo find / -type f -size +100M
# Bellek kullanımına göre sıralanmış aktif süreçleri görüntüleyin
ps aux --sort=-%mem | head
Otomatik yedeklemeler uygulayın ve günlük dosyalarının tüm kullanılabilir disk alanını tüketmesini önlemek için logrotate gibi araçlar kullanmayı düşünün. Bu en iyi uygulamalara uyarak sağlam ve güvenli bir Linux altyapısı koruyabilirsiniz.
Sonuç
Linux yönetimi, teorik bilgi ile pratik komut satırı yetkinliğinin birleşimini gerektirir. Kullanıcı yönetimi, izinler, paket işleme, hizmet kontrolü ve rutin bakım konularında ustalaşarak karmaşık sistemleri yönetmek için sağlam bir temel oluşturursunuz. Sistem yönetimi alanında uzun vadeli başarı için sürekli öğrenme ve değişikliklerin doğrulanması esastır.