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ırRHEL 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 modeRHEL 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/logBurada:
ls komut
-lah seçenekler
/var/log argümanNormal 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 --helpMan 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 sshdaynı 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ı silGeç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>&1Boru, bir komutun çıktısını diğerinin girdisine verir:
journalctl -u sshd | grep FailedSık kullanılan metin araçları:
grep
cut
sort
uniq
tr
sed
awk
head
tail
wc
lessZen 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_configGöreli yol:
../logs/app.logÖzel yollar:
. bulunduğun dizin
.. üst dizin
~ ev dizini
- önceki çalışma dizini, cd ileTemel 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-dirrm -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 filenamestat 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 +1GDeğişim zamanına göre:
find /var/log -type f -mtime -1İçeriğe göre:
grep -R "Listen" /etc/httpdBü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 hardlinkSembolik link başka bir yolu işaret eder:
ln -s /srv/app/current /opt/appHard 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.bakgibi 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.confDü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 araNano 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 configtestSonra:
systemctl reload serviceReload 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/gshadowKullanıcı görüntüleme:
id alice
getent passwd alice
getent group developersgetent, 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 aliceKullanıcıyı geçici olarak kilitlemek:
usermod -L aliceKilidi açmak:
usermod -U aliceHesap süresi:
chage -l aliceServis hesaplarının interaktif kabuğa ihtiyacı yoksa:
/usr/sbin/nologinkullanı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 -iYetki 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 verme6. 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:
750olur.
chmod 750 script.sh
chown alice:developers file
chgrp developers fileDizin 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şmeBu nedenle yalnız r izni olan bir dizin her zaman kullanılabilir değildir.
umask
Varsayılan izinlerden bit düşürür:
umask
umask 027Genel düşünce:
dosya başlangıcı 666
dizin başlangıcı 777Umask bu izinleri kısıtlar.
Özel bitler
setuid
setgid
sticky bitPaylaşılan ekip dizinlerinde setgid yararlıdır:
chmod 2770 /srv/teamYeni dosyalar dizinin grubunu miras alır.
/tmp benzeri ortak yazılabilir dizinlerde sticky bit kullanıcıların birbirinin dosyasını silmesini engeller:
1777ACL
Klasik owner-group-other modeli yetmiyorsa ACL kullanılır:
setfacl -m u:alice:rw file
getfacl fileVarsayılan ACL:
setfacl -m d:g:developers:rwx /srv/projectACL, 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ünDurum:
getenforce
sestatusÜretim sistemi için normal mod:
EnforcingSorun çıktığında SELinux'u kalıcı kapatmak doğru çözüm değildir.
Bağlam
Dosya bağlamı:
ls -Z /var/www/htmlGenel biçim:
user:role:type:levelGünlük yönetimde en çok type önemlidir.
Bir web sunucusu dosyasının uygun tipi örneğin:
httpd_sys_content_tolabilir.
Doğru düzeltme
Geçici etiket:
chconyerine kalıcı politika tanımlamak için:
semanage fcontext -a -t httpd_sys_content_t '/srv/web(/.*)?'
restorecon -Rv /srv/webkullanılır.
restorecon, politika tarafından beklenen etiketi geri uygular.
AVC kaydı
Erişim reddi olduğunda:
ausearch -m AVC,USER_AVC -ts recentve 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
topDaha ayrıntılı görünüm için:
systemd-cgtopve sistem kaynakları:
free -h
vmstat 1
iostat
sarilgili paketler kuruluysa kullanılabilir.
Yük ortalaması
uptime veya top içindeki load average:
1 dk
5 dk
15 dkortalaması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 yetersizsonucu otomatik olarak çıkarılmaz.
Önce:
top
vmstat 1
iostat -xz 1ile darboğazın CPU, bellek veya I/O olup olmadığı ayrılır.
Sinyaller
kill PID
kill -TERM PID
kill -KILL PIDSIGTERM sürece temiz kapanma fırsatı verir. SIGKILL vermez.
Normal sıra:
TERM
bekle
gerekirse KILLolmalıdır.
OOM
Bellek tükendiğinde çekirdek OOM killer ile süreç sonlandırabilir.
İlk bakılacak yer:
journalctl -kBir 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 sshdBaşlatma ve durdurma:
systemctl start sshd
systemctl stop sshd
systemctl restart sshd
systemctl reload sshdBoot sırasında etkinleştirme:
systemctl enable sshd
systemctl disable sshdTek komutta başlat ve etkinleştir:
systemctl enable --now sshdBuradaki önemli ayrım:
start şimdi çalıştır
enable sonraki bootlarda başlatBir 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
.pathUnit dosyasını görmek:
systemctl cat sshdBağımlılıkları görmek:
systemctl list-dependencies sshdOverride
Dağıtımın /usr/lib/systemd/system/ altındaki unit dosyasını doğrudan değiştirme.
Yerel değişiklik:
systemctl edit serviceile drop-in oluşturularak yapılır.
Sonra:
systemctl daemon-reload
systemctl restart serviceRHEL 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.targetVarsayılan:
systemctl get-defaultDeğiştirme:
systemctl set-default multi-user.target10. 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-timersBir 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.targetPersistent=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 platformu11. Loglar ve Zaman
Log analizi, sistem yönetiminin merkezidir.
RHEL'de iki ana mekanizma birlikte bulunur:
systemd-journald
rsyslogJournal:
journalctlServis:
journalctl -u sshdSon boot:
journalctl -bÖnceki boot:
journalctl -b -1Çekirdek:
journalctl -kZaman aralığı:
journalctl --since "2026-08-20 10:00" --until "2026-08-20 11:00"Canlı takip:
journalctl -fÖnem seviyesine göre:
journalctl -p warningKalı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/cronDağı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-usageZaman senkronizasyonu
Farklı sunuculardaki olayları ilişkilendirmek için saatlerin doğru olması gerekir.
Durum:
timedatectl
chronyc tracking
chronyc sources -vRHEL'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@hostDosya aktarımı:
scp file user@host:/path/
sftp user@hostDizin 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 ed25519Açı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ı daraltRHEL 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_configEk dosyalar kurulum ve sürüme göre sshd_config.d altında bulunabilir.
Değişiklikten önce:
sshd -tSonra:
systemctl reload sshdUzak 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 routeBağlantı profili etkinleştirme:
nmcli connection up PROFILEStatik 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 ens192DNS ve isim çözümleme:
resolvectl status
getent hosts example.comDağı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 routeLink-local adresler:
fe80::/10her 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
tcpdumpnetstat 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-allServis açma:
firewall-cmd --add-service=https --permanent
firewall-cmd --reloadPort 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ı durumTest 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 rulesetnftables, eski:
iptables
ip6tables
arptables
ebtables
ipsetekosisteminin 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/sshdDNF:
dnf search nginx
dnf info nginx
dnf install PACKAGE
dnf remove PACKAGE
dnf upgrade
dnf repolistYerel RPM:
dnf install ./package.rpmBağı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
SupplementarySunucuda hangi repositorylerin etkin olduğunu doğrula:
dnf repolistGü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 penceresiGü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
blkidKullanım:
df -hT
du -sh /pathdf 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 +L1XFS
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/fstabUUID kullanmak aygıt adına göre daha kararlıdır:
blkidÖrnek:
UUID=... /srv/data xfs defaults 0 0Değişiklik sonrası reboot etmeden test et:
mount -aHatalı fstab boot sürecini bozabilir.
LVM
Katmanlar:
disk / partition
↓
PV
↓
VG
↓
LV
↓
filesystemKomutlar:
pvs
vgs
lvsÖrnek:
pvcreate /dev/sdb
vgcreate vgdata /dev/sdb
lvcreate -L 100G -n lvdata vgdata
mkfs.xfs /dev/vgdata/lvdataBüyütme:
lvextend -L +20G /dev/vgdata/lvdata
xfs_growfs /mountpointBazı 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
SELinuxAktif exportlar:
exportfs -vİstemci mount:
mount -t nfs server:/export /mnt/dataNFSv4 modern tercih olmalıdır.
Kimlik doğrulama gereken yapılarda Kerberos:
krb5
krb5i
krb5pseviyeleri 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şırRHEL 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 httpdBu 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.tarSı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
-Xgibi 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 edildiolmalı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
libvirtTemel araçlar:
virsh list --all
virsh dominfo VM
virsh start VM
virsh shutdown VMGrafik yönetim için RHEL web console kullanılabilir.
Kaynak planlamasında:
vCPU
RAM
NUMA
storage latency
I/O queue
network
overcommitbirlikte 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-hostprofilleri sunar.
Profil seçmeden önce iş yükü ölçülmelidir.
21. Konteynerler
RHEL 10'un yerel konteyner araçları:
Podman
Buildah
SkopeoGörev ayrımı:
Podman konteyner ve pod çalıştırma/yönetme
Buildah imaj oluşturma
Skopeo registry ve imaj inceleme/kopyalamaPodman 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 imagesRootless 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
↓
systemctlBu 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.socketYapı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öndermedeğil:
istenen durumu tanımlama
↓
tekrarlanabilir uygulama
↓
sapmayı azaltmadır.
Örnek düşünce:
- hosts: web
become: true
roles:
- redhat.rhel_system_roles.timesyncSystem 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 otomasyonBir 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üncellemeyaklaşı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çir25. 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 kurtarmaTemel kurallar:
- Root ile günlük çalışma yapma.
- SSH'de anahtar tabanlı kimlik doğrulamayı tercih et.
- Kullanılmayan servisi kapat.
- Kullanılmayan portu açma.
- SELinux'u kapatarak sorun çözme.
- Paketleri desteklenen repositorylerden al.
- Zaman senkronizasyonunu koru.
- Logları merkezi olarak saklamayı düşün.
- Yedeği geri yükleyerek test et.
- 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ğrulamaServis çalışmıyor
systemctl status service
journalctl -u service -b
systemctl cat serviceSonra:
- 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-usagedf 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-allSonra:
ping gateway
getent hosts hostname
tracepath target
tcpdump -ni interfaceSSH çalışmıyor
Sunucuda:
sshd -t
systemctl status sshd
ss -lntp
journalctl -u sshd
firewall-cmd --list-servicesİstemcide:
ssh -vvv user@hostSELinux şüphesi
getenforce
ls -Z path
ausearch -m AVC -ts recentPolitikayı 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 latencyAraçlar:
top
vmstat
iostat
pidstat
sar
ss
ethtool
perfKullanı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
HTTPGü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 okuyabilmelihem 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 repolistBir 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ğrulaBir değişiklikten önce:
etki alanını bil
geri dönüş yolunu bil
mevcut durumu kaydetBir 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/