Red Hat Enterprise Linux Sistem Yönetimi

Red Hat Enterprise Linux Sistem Yönetimi

Red Hat Enterprise Linux sistem yönetimini kabuk, dosya sistemi, kullanıcılar, SELinux, systemd, ağ, güvenlik duvarı, DNF, LVM, depolama, sanallaştırma, Podman, otomasyon, image mode, sorun giderme ve performans üzerinden temelden ileri düzeye ele alan güncel teknik ders notu.

Bu not, 2016 tarihli RH124 ve RH254 sistem yönetimi materyallerindeki kalıcı kavramları korur; artık geçerli olmayan araçları ve çalışma biçimlerini ise 2026 RHEL 10.2 ortamına göre günceller. Amaç komut ezberlemek değil, bir Linux sisteminin nasıl düşündüğünü anlamaktır.

2026 için temel yaklaşım şudur:

önce durumu gör
sonra nedeni bul
en küçük değişikliği yap
sonucu doğrula
değişikliği kalıcılaştır

RHEL yönetiminde en çok hata, bir komutun yanlış bilinmesinden değil, geçici ve kalıcı durumun, işletim sistemi ile uygulamanın, dosya izni ile SELinux politikasının veya ağ profili ile çalışan ağ durumunun birbirine karıştırılmasından doğar.

1. RHEL 10.2 ile Sistem Yönetimi

Red Hat Enterprise Linux uzun ömürlü, desteklenen ve değişimi kontrollü bir Linux dağıtımıdır. 2026 ortasında güncel ana sürüm RHEL 10, güncel küçük sürüm ise RHEL 10.2'dir.

2016'daki RHEL 7 yaklaşımının önemli bir bölümü halen geçerlidir:

  • Bash ve GNU temel araçları
  • kullanıcı ve grup modeli
  • POSIX dosya izinleri
  • systemd
  • journal ve syslog
  • SSH
  • RPM
  • LVM
  • XFS
  • SELinux
  • firewalld
  • NetworkManager

Ancak bazı alışkanlıklar artık tarihsel bilgi olarak görülmelidir.

2016 yaklaşımı                    2026 yaklaşımı
------------------------------   -----------------------------------------
yum                              dnf
ifcfg dosyaları                  NetworkManager keyfile profilleri
network-scripts                  NetworkManager
network team / teamd             bonding
iptables merkezli yönetim        firewalld veya nftables
Docker merkezli anlatım          Podman, Buildah, Skopeo
elle tek tek sunucu ayarı        RHEL System Roles / Ansible
klasik kurulum tek seçenek       klasik paket modu + image mode

RHEL 10'da eski ifcfg biçimi desteklenmez. Ağ profilleri /etc/NetworkManager/system-connections/ altında keyfile biçiminde tutulur. teamd kaldırılmıştır; link birleştirme gereken yeni sistemlerde bonding kullanılır. dhclient da kaldırılmıştır; NetworkManager kendi DHCP istemcisini kullanır.

Bu değişiklikler komut bilgisinden daha önemli bir mesaj verir: sistem yöneticisi dosya ezberlememeli, işletim sisteminin güncel yönetim katmanını bilmelidir.

2. Kabuk ve Komut Satırı

RHEL'de varsayılan yönetim ortamı Bash'tir.

Bir komut satırının temel yapısı:

komut seçenek argüman

Örnek:

ls -lah /var/log

Burada:

ls          komut
-lah        seçenekler
/var/log    argüman

Normal kullanıcı istemi genellikle $, root istemi # ile biter. # yalnız görsel bir ayrım değildir; yanlış komutun etkisi bütün sisteme yayılabilir.

Yardım sistemi

Önce yerel belgeye bakmak çoğu zaman web aramasından daha hızlıdır:

man systemctl
man sshd_config
man 5 fstab
command --help

Man bölümleri önemlidir:

1   kullanıcı komutları
5   dosya biçimleri ve yapılandırmalar
8   yönetim komutları

Örneğin:

man 5 sshd_config
man 8 sshd

aynı konunun farklı katmanlarını açıklar.

Bir komutun nereden geldiğini görmek için:

type -a ssh
command -v ssh
rpm -qf "$(command -v ssh)"

Tamamlama ve geçmiş

Tab tamamlama yalnız hız için değil, yazım hatasını azaltmak için kullanılır.

Tab         tamamla
Ctrl+r      geçmişte ara
Ctrl+a      satır başı
Ctrl+e      satır sonu
Ctrl+u      imlecin solunu sil
Ctrl+k      imlecin sağını sil

Geçmiş:

history

Üretim sistemlerinde parola, token veya gizli anahtar içeren komutların shell geçmişine düşmemesi gerektiği unutulmamalıdır.

Boru ve yönlendirme

Standart akışlar:

0   stdin
1   stdout
2   stderr

Örnekler:

command > output.txt
command >> output.txt
command 2> error.txt
command > output.txt 2>&1

Boru, bir komutun çıktısını diğerinin girdisine verir:

journalctl -u sshd | grep Failed

Sık kullanılan metin araçları:

grep
cut
sort
uniq
tr
sed
awk
head
tail
wc
less

Zen ilkesi: tek bir grep yeterliyse karmaşık awk yazma. Birden çok alan işlenecekse awk kullan.

3. Dosya Sistemi ve Dosyalar

Linux tek bir dizin ağacı sunar. Diskler ve uzak dosya sistemleri bu ağacın belirli noktalarına bağlanır.

Temel dizinler:

/           kök
/etc        sistem yapılandırması
/var        değişken veriler, loglar, spool
/home       kullanıcı ev dizinleri
/root       root ev dizini
/usr        uygulamalar, kütüphaneler, paylaşılan veri
/opt        ek uygulamalar
/tmp        geçici veri
/run        çalışma zamanı verisi
/dev        aygıt düğümleri
/proc       süreç ve çekirdek görünümü
/sys        aygıt ve çekirdek nesneleri
/boot       çekirdek ve önyükleme verileri

/proc ve /sys normal disk dizinleri gibi görünür ancak çekirdek tarafından sunulan sanal dosya sistemleridir.

Yol kavramı

Mutlak yol:

/etc/ssh/sshd_config

Göreli yol:

../logs/app.log

Özel yollar:

.       bulunduğun dizin
..      üst dizin
~       ev dizini
-       önceki çalışma dizini, cd ile

Temel dosya işlemleri

pwd
ls -lah
cd /etc
mkdir -p /srv/app/data
cp source target
cp -a source/ backup/
mv old new
rm file
rmdir empty-dir

rm -rf yönetim kolaylığı değil, son çaredir. Özellikle root olarak çalışırken komutun hedefi Enter'a basmadan önce tekrar okunmalıdır.

Dosya türünü tanıma

Dosya uzantısı Linux için zorunlu değildir:

file filename
stat filename

stat inode, boyut, sahiplik ve zaman bilgilerini gösterir.

Arama

Dosya adına göre:

find /etc -name '*.conf'

Boyuta göre:

find /var -type f -size +1G

Değişim zamanına göre:

find /var/log -type f -mtime -1

İçeriğe göre:

grep -R "Listen" /etc/httpd

Büyük ağaçlarda find daha doğru, locate daha hızlıdır; locate indeksin güncelliğine bağlıdır.

Bağlantılar

Hard link aynı inode'a ikinci addır:

ln file hardlink

Sembolik link başka bir yolu işaret eder:

ln -s /srv/app/current /opt/app

Hard link genellikle dosya sistemi sınırını geçemez ve dizinler için kullanılmaz. Sembolik link kırılabilir ancak dosya sistemleri arasında çalışır.

4. Metin Dosyaları ve Yapılandırma

Linux yönetimi büyük ölçüde metin dosyası yönetimidir. Bir değişiklik yapmadan önce:

cp -a /etc/example.conf /etc/example.conf.bak

gibi kör yedek almak yerine değişiklik yönetimi olan ortamlarda Git, Ansible veya merkezi yapılandırma yönetimi tercih edilir. Tek makinede bile farkı görebilmek önemlidir:

diff -u old.conf new.conf

Düzenleyici

RHEL'de vi/vim bilgisi kurtarma ortamlarında dahi değerlidir.

En az bilinmesi gerekenler:

i       yazma modu
Esc     komut modu
:w      kaydet
:q      çık
:wq     kaydet ve çık
:q!     kaydetmeden çık
/search metin ara

Nano gibi düzenleyiciler kullanılabilir; fakat asgari vi bilgisi sistem yöneticisinin ortak paydasıdır.

Yapılandırma değişikliği kuralı

Bir dosyayı değiştirdikten sonra doğrudan servisi yeniden başlatmak yerine mümkünse önce sözdizimini doğrula.

Örnekler:

sshd -t
nginx -t
apachectl configtest

Sonra:

systemctl reload service

Reload yeterliyse restart yapma. Restart aktif bağlantıları kesebilir.

5. Kullanıcılar, Gruplar ve Yetki

Linux kimliği sayısaldır. Kullanıcı adının arkasında UID, grup adının arkasında GID vardır.

Temel dosyalar:

/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow

Kullanıcı görüntüleme:

id alice
getent passwd alice
getent group developers

getent, yalnız yerel dosyaları değil SSSD gibi kimlik kaynaklarını da görebildiği için kurumsal sistemlerde doğrudan /etc/passwd okumaktan daha anlamlıdır.

Kullanıcı yönetimi

useradd alice
passwd alice
usermod -aG wheel alice
userdel alice

Kullanıcıyı geçici olarak kilitlemek:

usermod -L alice

Kilidi açmak:

usermod -U alice

Hesap süresi:

chage -l alice

Servis hesaplarının interaktif kabuğa ihtiyacı yoksa:

/usr/sbin/nologin

kullanılması uygundur.

Root yerine sudo

Günlük yönetimde doğrudan root oturumu açmak yerine ayrıcalığı gerektiği anda yükseltmek daha güvenlidir:

sudo command
sudo -i

Yetki dosyası doğrudan rastgele düzenlenmez:

visudo

Özel kurallar:

/etc/sudoers.d/

altında tutulabilir.

En az ayrıcalık ilkesi:

kullanıcıya ihtiyacı olan komutu ver
ihtiyacı olmayan root yetkisini verme

6. Dosya İzinleri ve ACL

Klasik izin modeli üç özne sınıfına dayanır:

u   owner
g   group
o   others

İzinler:

r   read
w   write
x   execute

Örnek:

-rwxr-x---

sayısal olarak:

750

olur.

chmod 750 script.sh
chown alice:developers file
chgrp developers file

Dizin izinleri

Dizinlerde izinlerin anlamı farklıdır:

r   isimleri listeleme
w   dizin girdisi oluşturma/silme
x   dizine geçme ve içindeki nesneye erişme

Bu nedenle yalnız r izni olan bir dizin her zaman kullanılabilir değildir.

umask

Varsayılan izinlerden bit düşürür:

umask
umask 027

Genel düşünce:

dosya başlangıcı    666
dizin başlangıcı    777

Umask bu izinleri kısıtlar.

Özel bitler

setuid
setgid
sticky bit

Paylaşılan ekip dizinlerinde setgid yararlıdır:

chmod 2770 /srv/team

Yeni dosyalar dizinin grubunu miras alır.

/tmp benzeri ortak yazılabilir dizinlerde sticky bit kullanıcıların birbirinin dosyasını silmesini engeller:

1777

ACL

Klasik owner-group-other modeli yetmiyorsa ACL kullanılır:

setfacl -m u:alice:rw file
getfacl file

Varsayılan ACL:

setfacl -m d:g:developers:rwx /srv/project

ACL, karmaşık sahiplik sorununu çözebilir; fakat ölçüsüz kullanıldığında dosya erişimini okunamaz hale getirir. Önce grup modeli düşünülmelidir.

7. SELinux

SELinux dosya izninin alternatifi değil, ikinci bir güvenlik katmanıdır.

Erişim için hem klasik izinlerin hem SELinux politikasının izin vermesi gerekir:

POSIX izinleri izin veriyor
            +
SELinux izin veriyor
            =
erişim mümkün

Durum:

getenforce
sestatus

Üretim sistemi için normal mod:

Enforcing

Sorun çıktığında SELinux'u kalıcı kapatmak doğru çözüm değildir.

Bağlam

Dosya bağlamı:

ls -Z /var/www/html

Genel biçim:

user:role:type:level

Günlük yönetimde en çok type önemlidir.

Bir web sunucusu dosyasının uygun tipi örneğin:

httpd_sys_content_t

olabilir.

Doğru düzeltme

Geçici etiket:

chcon

yerine kalıcı politika tanımlamak için:

semanage fcontext -a -t httpd_sys_content_t '/srv/web(/.*)?'
restorecon -Rv /srv/web

kullanılır.

restorecon, politika tarafından beklenen etiketi geri uygular.

AVC kaydı

Erişim reddi olduğunda:

ausearch -m AVC,USER_AVC -ts recent

ve journal incelenir.

Sorun giderme sırası:

1. klasik izin doğru mu?
2. süreç doğru kullanıcıyla mı çalışıyor?
3. dosya bağlamı doğru mu?
4. port bağlamı doğru mu?
5. gerekli SELinux boolean var mı?
6. gerçekten yeni bir politika mı gerekiyor?

setenforce 0 yalnız tanı için kısa süreli kullanılabilir. "Çalıştı, o halde SELinux'u kapatalım" üretim yaklaşımı değildir.

8. Süreçler ve Kaynaklar

Süreç bir çalışan program örneğidir.

Temel komutlar:

ps aux
ps -ef
pgrep sshd
top

Daha ayrıntılı görünüm için:

systemd-cgtop

ve sistem kaynakları:

free -h
vmstat 1
iostat
sar

ilgili paketler kuruluysa kullanılabilir.

Yük ortalaması

uptime veya top içindeki load average:

1 dk
5 dk
15 dk

ortalamasıdır.

Load yalnız CPU kullanım yüzdesi değildir. Linux'ta çalışabilir durumda bekleyen veya kesilemez I/O beklemesindeki görevleri de yansıtabilir.

Bu nedenle:

yük yüksek -> CPU yetersiz

sonucu otomatik olarak çıkarılmaz.

Önce:

top
vmstat 1
iostat -xz 1

ile darboğazın CPU, bellek veya I/O olup olmadığı ayrılır.

Sinyaller

kill PID
kill -TERM PID
kill -KILL PID

SIGTERM sürece temiz kapanma fırsatı verir. SIGKILL vermez.

Normal sıra:

TERM
bekle
gerekirse KILL

olmalıdır.

OOM

Bellek tükendiğinde çekirdek OOM killer ile süreç sonlandırabilir.

İlk bakılacak yer:

journalctl -k

Bir sürecin "kendiliğinden" kapanması çoğu zaman uygulama hatası değil kaynak baskısının sonucudur.

9. systemd ve Servis Yönetimi

RHEL 7 ile gelen systemd yaklaşımı 2026'da da temel yönetim modelidir.

Servis durumu:

systemctl status sshd

Başlatma ve durdurma:

systemctl start sshd
systemctl stop sshd
systemctl restart sshd
systemctl reload sshd

Boot sırasında etkinleştirme:

systemctl enable sshd
systemctl disable sshd

Tek komutta başlat ve etkinleştir:

systemctl enable --now sshd

Buradaki önemli ayrım:

start      şimdi çalıştır
enable     sonraki bootlarda başlat

Bir servis çalışıyor olabilir ama enabled olmayabilir; enabled olabilir ama şu anda çalışmıyor olabilir.

Unit türleri

Yaygın unit türleri:

.service
.socket
.timer
.mount
.target
.path

Unit dosyasını görmek:

systemctl cat sshd

Bağımlılıkları görmek:

systemctl list-dependencies sshd

Override

Dağıtımın /usr/lib/systemd/system/ altındaki unit dosyasını doğrudan değiştirme.

Yerel değişiklik:

systemctl edit service

ile drop-in oluşturularak yapılır.

Sonra:

systemctl daemon-reload
systemctl restart service

RHEL 10 yalnız cgroups v2 modelini kullanır. Süreç gruplama ve kaynak denetimini eski cgroups v1 varsayımlarıyla değil, systemd unit/cgroup hiyerarşisi üzerinden düşünmek gerekir.

Target

Klasik runlevel yaklaşımının karşılığı target yapısıdır.

Yaygın targetlar:

multi-user.target
graphical.target
rescue.target
emergency.target

Varsayılan:

systemctl get-default

Değiştirme:

systemctl set-default multi-user.target

10. Zamanlanmış İşler

Tek seferlik işlerde at, periyodik işlerde cron halen kullanılabilir.

Ancak systemd timer modern ve görünür bir alternatiftir.

Timerları listele:

systemctl list-timers

Bir timer iki unit ile ifade edilir:

backup.service
backup.timer

Örnek timer:

[Unit]
Description=Günlük yedek

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Persistent=true, sistem kapalıyken kaçırılan çalışmayı açılıştan sonra tetikleyebilir.

Zen yaklaşımı:

basit kullanıcı işi          cron
servis yaşam döngüsüne bağlı iş   systemd timer
merkezi çok sunuculu iş      otomasyon platformu

11. Loglar ve Zaman

Log analizi, sistem yönetiminin merkezidir.

RHEL'de iki ana mekanizma birlikte bulunur:

systemd-journald
rsyslog

Journal:

journalctl

Servis:

journalctl -u sshd

Son boot:

journalctl -b

Önceki boot:

journalctl -b -1

Çekirdek:

journalctl -k

Zaman aralığı:

journalctl --since "2026-08-20 10:00" --until "2026-08-20 11:00"

Canlı takip:

journalctl -f

Önem seviyesine göre:

journalctl -p warning

Kalıcı journal

Journal yapılandırmasına göre günlükler /run/log/journal altında geçici veya /var/log/journal altında kalıcı tutulabilir.

Kurumsal sistemlerde reboot öncesi olayların kaybolmaması için kalıcı günlükleme düşünülmelidir.

rsyslog

Geleneksel dosyalar halen değerlidir:

/var/log/messages
/var/log/secure
/var/log/maillog
/var/log/cron

Dağıtıma ve servis yapılandırmasına göre bütün olayların bu dosyalarda bulunacağı varsayılmamalıdır. Önce journal kontrol edilmelidir.

Log rotation

Log dosyasının sonsuza kadar büyümesine izin verilmez. logrotate boyut veya zaman ölçütüyle eski kayıtları döndürür.

Bir log sorununda yalnız içeriğe değil disk doluluğuna da bak:

df -h
du -sh /var/log/*
journalctl --disk-usage

Zaman senkronizasyonu

Farklı sunuculardaki olayları ilişkilendirmek için saatlerin doğru olması gerekir.

Durum:

timedatectl
chronyc tracking
chronyc sources -v

RHEL'de Chrony temel zaman senkronizasyon aracıdır.

Saat farkı:

  • log korelasyonunu,
  • Kerberos'u,
  • sertifika doğrulamasını,
  • dağıtık işlemleri,
  • adli zaman çizelgesini

bozabilir.

12. SSH

OpenSSH uzak sistem yönetiminin temelidir. RHEL 10, OpenSSH 9.9 ailesini sunar.

Bağlantı:

ssh user@host

Dosya aktarımı:

scp file user@host:/path/
sftp user@host

Dizin eşleme ve verimli senkronizasyon için çoğu durumda:

rsync -aHAX --info=progress2 source/ user@host:/target/

daha uygundur.

Anahtar tabanlı kimlik doğrulama

Anahtar üret:

ssh-keygen -t ed25519

Açık anahtarı hedefe ekle:

ssh-copy-id user@host

Özel anahtar paylaşılmaz.

Sunucuda temel sertleştirme ilkeleri:

root ile doğrudan parola girişini kapat
parola yerine anahtar tercih et
gereksiz kullanıcıları sınırla
gerekli değilse yönlendirme özelliklerini kapat
firewall ile erişim alanını daralt

RHEL kurulumunda root hesabı ve parola ile root SSH erişimi güvenlik nedeniyle varsayılan olarak kısıtlı tutulur.

Yapılandırma

Ana dosya:

/etc/ssh/sshd_config

Ek dosyalar kurulum ve sürüme göre sshd_config.d altında bulunabilir.

Değişiklikten önce:

sshd -t

Sonra:

systemctl reload sshd

Uzak bir makinede SSH ayarı değiştirirken mevcut oturumu kapatmadan ikinci bir bağlantıyla yeni ayarı doğrulamak güvenli yöntemdir.

13. Ağ Yönetimi

RHEL 10 ağ yönetiminin merkezi NetworkManager'dır.

Durum:

nmcli device status
nmcli connection show
ip address
ip route

Bağlantı profili etkinleştirme:

nmcli connection up PROFILE

Statik IPv4

Örnek:

nmcli connection modify ens192 \
  ipv4.method manual \
  ipv4.addresses 192.0.2.10/24 \
  ipv4.gateway 192.0.2.1 \
  ipv4.dns "192.0.2.53 192.0.2.54"

nmcli connection up ens192

DNS ve isim çözümleme:

resolvectl status
getent hosts example.com

Dağıtımın NetworkManager entegrasyonuna göre /etc/resolv.conf doğrudan elle yönetilmemelidir.

Keyfile biçimi

RHEL 10'da NetworkManager profilleri:

/etc/NetworkManager/system-connections/

altında keyfile olarak saklanır.

2016 materyalindeki:

/etc/sysconfig/network-scripts/ifcfg-*

dosyaları RHEL 10 için güncel yöntem değildir ve destek kaldırılmıştır.

Bonding

Birden çok fiziksel bağlantı tek mantıksal arayüzde birleştirilebilir.

RHEL 10'da teamd yoktur; bonding kullanılmalıdır.

Amaç:

  • bağlantı yedekliliği,
  • bazı modlarda yük dağıtımı,
  • tek mantıksal arayüz

sağlamaktır.

IPv6

IPv6 güncel RHEL yönetiminde isteğe bağlı bir ek değil, temel ağ yeteneğidir.

Görüntüleme:

ip -6 address
ip -6 route

Link-local adresler:

fe80::/10

her bağlantıda önemli rol oynar.

IPv6'yı "kullanmıyoruz" gerekçesiyle rastgele kapatmak yerine altyapının gerçekten nasıl çalıştığı doğrulanmalıdır. Birçok servis ve kütüphane çift yığın davranışını varsayar.

Sorun giderme sırası

1. link var mı?
2. arayüz up mı?
3. adres doğru mu?
4. rota doğru mu?
5. gateway erişiliyor mu?
6. DNS çalışıyor mu?
7. servis dinliyor mu?
8. firewall izin veriyor mu?
9. SELinux izin veriyor mu?

Araçlar:

ip link
ip addr
ip route
ping
tracepath
ss -lntup
nmcli
dig
getent hosts
tcpdump

netstat ve ifconfig tarihsel araçlardır. Güncel temel araçlar ss ve ip komutlarıdır.

14. Güvenlik Duvarı

RHEL 10'da genel sunucu yönetiminde firewalld, daha özel ve performans kritik kurallarda doğrudan nftables kullanılır.

Aynı sistemde iki bağımsız firewall yönetim katmanını birbiriyle yarışır halde kullanma.

firewalld

Durum:

firewall-cmd --state
firewall-cmd --get-active-zones
firewall-cmd --list-all

Servis açma:

firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Port açmak yerine tanımlı servis kullanmak kuralın amacını daha okunabilir kılar.

Runtime ve permanent ayrımı önemlidir:

runtime      çalışan durum
permanent    yeniden yükleme/boot sonrası durum

Test için önce runtime kural eklemek, doğruladıktan sonra kalıcılaştırmak geri dönüşü kolaylaştırır.

nftables

Düşük seviye görünüm:

nft list ruleset

nftables, eski:

iptables
ip6tables
arptables
ebtables
ipset

ekosisteminin yerini alan birleşik çerçevedir.

Kurumsal uygulamada kuralın yalnız sözdizimi değil sahipliği önemlidir. Bir kurallar bütününü firewalld yönetiyorsa aynı kuralları elle nft ile değiştirmek yapılandırma sapması oluşturur.

15. Paket Yönetimi

RPM paket biçimidir; DNF bağımlılık ve repository yönetim katmanıdır.

Paket sorgusu:

rpm -q openssh-server
rpm -qi openssh-server
rpm -ql openssh-server
rpm -qf /usr/sbin/sshd

DNF:

dnf search nginx
dnf info nginx
dnf install PACKAGE
dnf remove PACKAGE
dnf upgrade
dnf repolist

Yerel RPM:

dnf install ./package.rpm

Bağımlılığı elle çözmeye çalışıp doğrudan rpm -i kullanmak yerine çoğu durumda DNF tercih edilir.

Repository yapısı

RHEL 10 içerikleri başta şu repository ailelerinde sunulur:

BaseOS
AppStream
CodeReady Linux Builder
Supplementary

Sunucuda hangi repositorylerin etkin olduğunu doğrula:

dnf repolist

Güncelleme disiplini

"Update var mı?" sorusu tek başına yeterli değildir.

Değerlendir:

güvenlik etkisi
uygulama bağımlılığı
kernel güncellemesi
servis restart gereksinimi
reboot gereksinimi
rollback planı
bakım penceresi

Güncelleme sonrası çalışan süreç eski kütüphaneyi bellekte tutabilir. Paket güncellendi diye bütün riskin sona erdiği varsayılmamalıdır.

16. Disk, Dosya Sistemi ve LVM

Blok aygıtlarını gör:

lsblk -f
blkid

Kullanım:

df -hT
du -sh /path

df dosya sistemindeki kullanılabilir alanı, du dizin ağacındaki görünen dosyaların kapladığı alanı ölçer. Silinmiş fakat süreç tarafından açık tutulan dosya iki değer arasında fark oluşturabilir:

lsof +L1

XFS

RHEL 10'un varsayılan yerel dosya sistemi XFS'tir.

Güçlü yönleri:

  • büyük dosyalar ve büyük dosya sistemleri,
  • yüksek eşzamanlı I/O,
  • metadata journaling,
  • çevrim içi büyütme.

Önemli sınırlama:

XFS küçültülemez.

Bu nedenle LVM boyutlandırması yapılırken "sonra küçültürüz" varsayımı hatalıdır.

ext4

ext4 halen desteklenen ve olgun bir dosya sistemidir. Bazı küçük veya düşük I/O iş yüklerinde uygundur ve çevrim dışı küçültme yeteneği XFS'ten ayrılır.

Varsayılan tercih özel bir gerekçe yoksa XFS'tir.

fstab

Kalıcı mount:

/etc/fstab

UUID kullanmak aygıt adına göre daha kararlıdır:

blkid

Örnek:

UUID=...  /srv/data  xfs  defaults  0  0

Değişiklik sonrası reboot etmeden test et:

mount -a

Hatalı fstab boot sürecini bozabilir.

LVM

Katmanlar:

disk / partition
      ↓
PV
      ↓
VG
      ↓
LV
      ↓
filesystem

Komutlar:

pvs
vgs
lvs

Örnek:

pvcreate /dev/sdb
vgcreate vgdata /dev/sdb
lvcreate -L 100G -n lvdata vgdata
mkfs.xfs /dev/vgdata/lvdata

Büyütme:

lvextend -L +20G /dev/vgdata/lvdata
xfs_growfs /mountpoint

Bazı LVM komutları dosya sistemini de birlikte büyütebilir; yine de iki katmanın ayrı olduğunu bilmek gerekir.

Thin provisioning ve VDO

Thin provisioning fiziksel alanı ihtiyaç oldukça ayırır. Verimli olsa da overcommit mümkündür; kapasite izlenmezse bütün havuz aniden yazamaz hale gelebilir.

VDO veri azaltma için:

  • thin provisioning,
  • sıkıştırma,
  • tekilleştirme

özelliklerini birleştirir.

Veri azaltma "bedava kapasite" değildir. CPU, bellek ve metadata maliyeti vardır.

Stratis

Stratis, disk havuzu ve dosya sistemi yönetimini daha üst düzey bir arayüzle sunar. XFS tabanlı depolama yönetimini basitleştirir.

LVM'i bilmeden Stratis öğrenmek ters sıradır. Önce blok aygıtı, PV/VG/LV ve dosya sistemi ilişkisi anlaşılmalıdır.

Şifreleme

Disk şifreleme için LUKS2 kullanılır.

Kurumsal sistemlerde manuel parola dışında:

  • Clevis,
  • NBDE,
  • TPM2,
  • uzaktan doğrulama tabanlı çözme

gibi mekanizmalar kullanılabilir.

RHEL 10.2, uzaktan doğrulamayla otomatik LUKS çözme senaryolarını geliştiren yeni Clevis entegrasyonları içerir.

17. Uzak Depolama ve Dosya Paylaşımı

NFS

NFS Linux/UNIX ortamlarında temel dosya paylaşım yöntemidir.

Sunucu tarafı kavramları:

export
istemci
izin
kimlik eşleme
firewall
SELinux

Aktif exportlar:

exportfs -v

İstemci mount:

mount -t nfs server:/export /mnt/data

NFSv4 modern tercih olmalıdır.

Kimlik doğrulama gereken yapılarda Kerberos:

krb5
krb5i
krb5p

seviyeleri kullanılabilir. krb5p gizlilik de sağlar.

SMB

Windows uyumluluğu gereken ortamlarda Samba kullanılır.

İstemci tarafında:

mount -t cifs ...

kullanılabilir.

Ağ paylaşımında yalnız dosya modu değil:

  • sunucu paylaşım yetkisi,
  • kimlik altyapısı,
  • SELinux,
  • firewall

birlikte değerlendirilir.

iSCSI ve NVMe-oF

Dosya paylaşımı ile blok depolama aynı şey değildir.

NFS/SMB      uzak dosya sistemi
iSCSI        uzak blok aygıtı
NVMe-oF      NVMe blok erişimini ağ/fabric üzerinden taşır

RHEL 10:

  • iSCSI,
  • Fibre Channel,
  • NVMe/RDMA,
  • NVMe/FC,
  • NVMe/TCP

gibi kurumsal depolama yöntemlerini destekler. Çoklu yol kullanımı taşıma türüne göre seçilir. NVMe fabrics senaryolarında yerel NVMe multipath modeli esastır; DM Multipath her NVMe taşıması için genel bir çözüm değildir.

18. Web ve Veritabanı Servisleri

2016 materyalindeki Apache HTTPD, DNS ve MariaDB bölümleri hala sistem yönetimi açısından değerlidir; ancak amaç uygulama uzmanlığı değil servis yönetim modelini kavramaktır.

Bir servis için aynı kontrol zinciri uygulanır:

paket kurulu mu?
config geçerli mi?
servis çalışıyor mu?
port dinleniyor mu?
firewall izin veriyor mu?
SELinux izin veriyor mu?
isim çözümleme doğru mu?
log ne söylüyor?

Örnek Apache:

dnf install httpd
apachectl configtest
systemctl enable --now httpd
ss -lntp
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
journalctl -u httpd

Bu model Nginx, MariaDB, DNS veya özel Java servisi için de aynıdır.

Servis özelinde komutlar değişir; tanı yöntemi değişmez.

19. Arşivleme, Kopyalama ve Yedekleme

Arşiv:

tar -cf backup.tar directory/
tar -xf backup.tar

Sıkıştırma:

tar -czf backup.tar.gz directory/
tar -cJf backup.tar.xz directory/

Büyük üretim yedeklerinde sıkıştırma seçimi CPU, süre ve geri yükleme hedefiyle birlikte değerlendirilmelidir.

Uzak kopya:

rsync -aHAX source/ host:/backup/

-a her şeyi korumaz. ACL ve extended attribute önemliyse:

-A
-X

gibi seçeneklerin gerekip gerekmediği değerlendirilmelidir.

Yedek var demek yetmez.

Gerçek yedek:

oluşturuldu
bütünlüğü doğrulandı
ayrı hata alanında tutuldu
geri yükleme test edildi

olmalıdır.

Snapshot yedek değildir. Aynı storage arızasında snapshot da kaybolabilir.

20. Sanallaştırma

RHEL sanallaştırma altyapısı:

KVM
QEMU
libvirt

Temel araçlar:

virsh list --all
virsh dominfo VM
virsh start VM
virsh shutdown VM

Grafik yönetim için RHEL web console kullanılabilir.

Kaynak planlamasında:

vCPU
RAM
NUMA
storage latency
I/O queue
network
overcommit

birlikte düşünülmelidir.

Bir sanal makinenin yavaş olması her zaman CPU eksikliği değildir. Sanallaştırmada depolama gecikmesi ve NUMA yerleşimi sık gözden kaçar.

TuneD, sanal makine ve sanallaştırma hostu için:

virtual-guest
virtual-host

profilleri sunar.

Profil seçmeden önce iş yükü ölçülmelidir.

21. Konteynerler

RHEL 10'un yerel konteyner araçları:

Podman
Buildah
Skopeo

Görev ayrımı:

Podman    konteyner ve pod çalıştırma/yönetme
Buildah   imaj oluşturma
Skopeo    registry ve imaj inceleme/kopyalama

Podman daemon gerektirmez ve rootless çalışabilir.

Örnek:

podman pull registry.redhat.io/ubi10/ubi
podman run --rm -it registry.redhat.io/ubi10/ubi bash
podman ps
podman images

Rootless konteyner varsayılan tercih olmalıdır. Root yetkisi gerekmiyorsa verilmemelidir.

systemd ile konteyner

Yeni yapılandırmalarda Quadlet tercih edilir.

Quadlet, konteyneri systemd ile yönetilecek bir servis gibi tanımlar. Eski podman generate systemd yaklaşımına göre daha bakım yapılabilir bir yapı sunar.

Düşünce:

konteyner tanımı
      ↓
Quadlet
      ↓
systemd service
      ↓
systemctl

Bu sayede uygulama sunucusunda ayrı bir container daemon yaşam döngüsü kurmadan standart sistem yönetim araçları kullanılabilir.

22. Cockpit Web Console

Komut satırı ana yönetim aracı olmaya devam eder; grafik arayüz ise gözlem ve belirli işlemlerde yararlıdır.

RHEL web console, Cockpit tabanlıdır.

Kurulum:

dnf install cockpit
systemctl enable --now cockpit.socket

Yapılabilen işlemler:

  • servis yönetimi,
  • kullanıcı yönetimi,
  • ağ,
  • firewall,
  • storage,
  • log inceleme,
  • sanal makineler,
  • SELinux,
  • yazılım güncelleme,
  • tanı raporları.

Web console ayrı bir yönetim evreni değildir; aynı sistem araçlarını kullanır. CLI ile yapılan değişiklik arayüzde de görünür.

Root login yerine sudo yetkili normal kullanıcı kullanmak daha doğru yaklaşımdır.

23. Otomasyon

Bir sunucuda elle yapılan işlem öğrenme yöntemidir. Aynı işlem onlarca sunucuda tekrarlanıyorsa otomasyon konusudur.

2026 RHEL yönetiminde Red Hat System Roles, Ansible tabanlı ortak yönetim modeli sunar.

Amaç:

sunucuya tek tek komut gönderme

değil:

istenen durumu tanımlama
↓
tekrarlanabilir uygulama
↓
sapmayı azaltma

dır.

Örnek düşünce:

- hosts: web
  become: true
  roles:
    - redhat.rhel_system_roles.timesync

System Roles;

  • ağ,
  • zaman,
  • firewall,
  • SELinux,
  • storage,
  • journald,
  • sudo,
  • SSH,
  • Cockpit

gibi yönetim alanlarında dağıtım tarafından desteklenen otomasyon kalıpları sağlar.

Zen ilkesi:

tek sunucu + tek değişiklik       CLI
çok sunucu + tekrarlı değişiklik  otomasyon

Bir komutu Ansible içine koymak tek başına otomasyon kalitesi değildir. İstenen son durum tanımlanmalı ve tekrar çalıştırıldığında gereksiz değişiklik üretmemelidir.

24. Image Mode ve bootc

RHEL 10 ile klasik paket tabanlı işletim sistemi yönetimine ek olarak image mode olgunlaşmıştır.

Image mode:

işletim sistemi
      ↓
OCI imajı
      ↓
build/test
      ↓
registry
      ↓
bootc ile dağıtım/güncelleme

yaklaşımını kullanır.

Bu modelde işletim sistemi bileşimi sunucu üzerinde tek tek değiştirilmek yerine imaj olarak inşa edilir.

Uygun olduğu yerler:

  • çok sayıda benzer sistem,
  • edge,
  • değişmez altyapı,
  • CI/CD ile işletim sistemi dağıtımı,
  • sürümün bütünüyle test edilmesinin istendiği ortamlar.

Her sunucuyu image mode'a geçirmek gerekmez. Klasik paket modu hala genel sistem yönetiminin temelidir.

İki yaklaşımın farkı:

paket modu       çalışan sistemi değiştir
image mode       imajı değiştir, sistemi yeni imaja geçir

25. Güvenli Sistem Yönetimi

Güvenlik tek ürün değil katmanların toplamıdır:

kimlik
↓
sudo
↓
dosya izinleri
↓
SELinux
↓
servis yapılandırması
↓
firewall
↓
şifreli iletişim
↓
loglama
↓
güncelleme
↓
yedek ve kurtarma

Temel kurallar:

  1. Root ile günlük çalışma yapma.
  2. SSH'de anahtar tabanlı kimlik doğrulamayı tercih et.
  3. Kullanılmayan servisi kapat.
  4. Kullanılmayan portu açma.
  5. SELinux'u kapatarak sorun çözme.
  6. Paketleri desteklenen repositorylerden al.
  7. Zaman senkronizasyonunu koru.
  8. Logları merkezi olarak saklamayı düşün.
  9. Yedeği geri yükleyerek test et.
  10. Değişikliği mümkün olduğunca otomasyonla tekrar üretilebilir hale getir.

Kriptografik politika

RHEL sistem genelinde kriptografik politika uygular. Uygulamalar mümkün olduğunda kendi bağımsız zayıf algoritma listelerini taşımak yerine sistem politikasına uyar.

Eski:

  • SHA-1,
  • küçük RSA anahtarları,
  • eski TLS sürümleri,
  • eski SSH algoritmaları

için uyumluluk gerektiğinde güvenlik etkisi ayrıca değerlendirilmelidir.

Eski cihazı çalıştırmak için bütün sunucunun kriptografik seviyesini düşürmek kalıcı çözüm değildir.

26. Sorun Giderme

Sorun giderme bir komut listesi değil, kanıt toplama sürecidir.

Genel sıra:

belirti
↓
kapsam
↓
son değişiklik
↓
log
↓
kaynak durumu
↓
bağımlılık
↓
en küçük hipotez
↓
test
↓
düzeltme
↓
doğrulama

Servis çalışmıyor

systemctl status service
journalctl -u service -b
systemctl cat service

Sonra:

  • config testi,
  • kullanıcı ve grup,
  • dosya izinleri,
  • SELinux,
  • port çakışması,
  • dependency.

Disk dolu

df -hT
df -ih
du -xhd1 /
lsof +L1
journalctl --disk-usage

df dolu ama du küçükse silinmiş fakat açık dosya veya mount yapısı düşünülmelidir.

Ağ çalışmıyor

ip link
ip addr
ip route
nmcli device
nmcli connection
ss -lntup
firewall-cmd --list-all

Sonra:

ping gateway
getent hosts hostname
tracepath target
tcpdump -ni interface

SSH çalışmıyor

Sunucuda:

sshd -t
systemctl status sshd
ss -lntp
journalctl -u sshd
firewall-cmd --list-services

İstemcide:

ssh -vvv user@host

SELinux şüphesi

getenforce
ls -Z path
ausearch -m AVC -ts recent

Politikayı kapatmadan önce gerçek AVC kaydı bulunmalıdır.

27. Tanı ve Destek Verisi

Bir arıza anında sistem durumunun bütünü önemlidir.

Red Hat ortamında sos araçları sistem yapılandırması ve tanı verilerini paketlemek için kullanılır.

Bir destek paketi oluştururken:

  • kişisel veri,
  • gizli anahtar,
  • uygulama sırrı,
  • kurum içi adresleme,
  • log içeriği

gibi hassas bilgilerin bulunabileceği unutulmamalıdır.

Tanı paketi de güvenlik sınıflandırmasına tabi bir veridir.

28. Performans Yönetimi

Performans ayarı ölçümden sonra yapılır.

Yanlış sıra:

sysctl değiştir
TuneD profili değiştir
I/O scheduler değiştir
sonra ölç

Doğru sıra:

iş yükünü tanımla
↓
baseline ölç
↓
darboğazı bul
↓
tek değişiklik yap
↓
yeniden ölç

Temel göstergeler:

CPU kullanım ve run queue
memory pressure
swap
disk latency ve IOPS
network throughput ve loss
application latency

Araçlar:

top
vmstat
iostat
pidstat
sar
ss
ethtool
perf

Kullanılabilirlik paket kurulumuna bağlıdır.

TuneD genel profiller sunar, ancak profil seçimi benchmark yerine geçmez.

29. 2016'dan 2026'ya Kalanlar ve Değişenler

Kalıcı bilgi:

Bash
dosya sistemi hiyerarşisi
kullanıcı ve grup
chmod/chown
süreç ve sinyal
systemd
SSH
journal
RPM
LVM
XFS
SELinux
NFS
DNS
HTTP

Güncellenmesi gereken bilgi:

yum                         -> dnf
ifcfg                       -> NetworkManager keyfile
network-scripts             -> NetworkManager
teamd                       -> bonding
ifconfig/netstat            -> ip/ss
iptables odaklı yönetim     -> firewalld/nftables
tek tek elle yönetim        -> System Roles/Ansible
Docker varsayımı            -> Podman ekosistemi
yalnız klasik kurulum       -> paket modu + image mode

Öğrenilmesi gerekmeyen şey eski komutların tamamen unutulması değildir. Eski üretim sistemleri yıllarca yaşamaya devam eder. Sistem yöneticisi hem:

eski sistemi okuyabilmeli

hem de:

yeni sistemi eski yöntemle kurmamalı

dır.

30. Sistem Yöneticisinin Kısa Kontrol Listesi

Yeni bir sunucu açıldığında:

cat /etc/redhat-release
uname -r
timedatectl
ip addr
ip route
nmcli connection show
df -hT
lsblk -f
free -h
systemctl --failed
journalctl -p warning -b
getenforce
firewall-cmd --get-active-zones
dnf repolist

Bir servis devreye alınırken:

paketi kur
yapılandır
config doğrula
enable/start
portu doğrula
firewallı aç
SELinux'u doğrula
uzaktan test et
logu kontrol et
reboot sonrası doğrula

Bir değişiklikten önce:

etki alanını bil
geri dönüş yolunu bil
mevcut durumu kaydet

Bir değişiklikten sonra:

komut başarılı mı?          yetmez
servis çalışıyor mu?        yetmez
işlev gerçekten çalışıyor mu?
reboot sonrası sürüyor mu?
log temiz mi?

Son soru her zaman davranışa yöneliktir.

31. Sınav ve Uygulama İçin Temel Ayrımlar

**start ile enable aynı değildir.** İlki çalışan durumu, ikincisi boot politikasını değiştirir.

**reload ile restart aynı değildir.** Reload mümkünse aktif iş yükünü daha az etkiler.

**df ile du aynı şeyi ölçmez.** Biri dosya sistemi tahsisini, diğeri görünen dosya ağacını ölçer.

Dosya izinleri ile SELinux aynı katman değildir. İkisinin de izin vermesi gerekir.

Firewall açık olması servisin çalıştığı anlamına gelmez. Önce ss, sonra firewall kontrol edilir.

Port dinliyor olması uzaktan erişilebildiği anlamına gelmez. Route, firewall, SELinux ve uygulama politikası ayrıca kontrol edilir.

NetworkManager profili ile çalışan arayüz durumu aynı değildir. Profil doğru olup henüz etkinleştirilmemiş olabilir.

Runtime firewall kuralı ile permanent kural aynı değildir. Reboot veya reload sonrası fark ortaya çıkar.

RPM ile DNF aynı katman değildir. RPM paket biçimi ve düşük seviye veritabanıdır; DNF repository ve bağımlılık yönetir.

LVM ile dosya sistemi aynı şey değildir. LV büyütülse bile dosya sistemi ayrıca büyütülmelidir.

Snapshot yedek değildir. Aynı hata alanında bulunabilir.

Konteyner sanal makine değildir. Konteyner host çekirdeğini paylaşır.

Rootless konteyner root konteynerden daha düşük risklidir. İhtiyaç yoksa ayrıcalık verilmez.

ifcfg RHEL 10'da güncel ağ yapılandırma yöntemi değildir. Keyfile kullanan NetworkManager esas alınır.

Team ile bond aynı çözüm ailesindedir ancak RHEL 10'da team kaldırılmıştır. Yeni yapılandırmada bond kullanılır.

iptables bilgisi tarihsel olarak değerlidir ama yeni RHEL firewall yönetiminin merkezi değildir. firewalld ve nftables tercih edilir.

XFS varsayılandır ve büyütülebilir, küçültülemez. Storage planı buna göre yapılır.

Logdaki saat yanlışsa olay sırası da yanlıştır. Chrony adli ve operasyonel doğruluk için önemlidir.

Bir sistemi elle yönetebilmek temeldir; aynı işlemi yüz sistemde elle yapmak ise tasarım hatasıdır.

Kaynakça

  • Red Hat. RH124 Red Hat System Administration I, 2016. Kullanıcının sağladığı ders materyali.
  • Red Hat. RH254 Red Hat System Administration III, 2016. Kullanıcının sağladığı ders materyali.
  • Red Hat. Red Hat Enterprise Linux 10.2 Release Notes. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/10.2_release_notes/
  • Red Hat. Considerations in adopting RHEL 10. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/considerations_in_adopting_rhel_10/
  • Red Hat. Configuring and managing networking. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_and_managing_networking/
  • Red Hat. Configuring firewalls and packet filters. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_firewalls_and_packet_filters/
  • Red Hat. Using SELinux. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/using_selinux/
  • Red Hat. Managing software with the DNF tool. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_software_with_the_dnf_tool/
  • Red Hat. Managing file systems. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_file_systems/
  • Red Hat. Managing storage devices. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_storage_devices/
  • Red Hat. Risk reduction and recovery operations. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/risk_reduction_and_recovery_operations/
  • Red Hat. Configuring authentication and authorization in RHEL. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_authentication_and_authorization_in_rhel/
  • Red Hat. Building, running, and managing containers. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/building_running_and_managing_containers/
  • Red Hat. Automating system administration by using RHEL system roles. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/automating_system_administration_by_using_rhel_system_roles/
  • Red Hat. Using image mode for RHEL to build, deploy, and manage operating systems. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/using_image_mode_for_rhel_to_build_deploy_and_manage_operating_systems/
  • Red Hat. Managing systems in the RHEL web console. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_systems_in_the_rhel_web_console/
  • Red Hat. Configuring and managing Linux virtual machines. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_and_managing_linux_virtual_machines/
  • GNU Project. Bash Reference Manual. https://www.gnu.org/software/bash/manual/
  • systemd. System and Service Manager Documentation. https://systemd.io/
  • OpenSSH. OpenSSH Manual Pages. https://www.openssh.com/manual.html
  • Podman. Podman Documentation. https://docs.podman.io/
Bu sayfanın QR kodu