Linux dosya sistemi, işletim siteminin verileri saklama, düzenleme ve erişme yöntemlerini belirleyen yapıdır. Bu yapı, dosyaların nasıl isimlendirileceğini, düzenleneceğini ve saklanacağını belirler. Bir linux dosya sistemi, hem kullanıcı dosyalarını hem de sistem dosyalarını organize etmek için kullanılır ve temel olarak dosya ve dizinlerden oluşur.
Dosya sistemi sayesinde;
- Veri organizasyonu sağlanır. Dosyaları mantıksal bir yapıda düzenleyerek, kullanıcıların ve sistemin verilere kolayca erişmesini sağlar.
- Veri depolama ve erişime imkanı sağlar. Dosyaların sabit disk veya diğer depolama cihazlarında fiziksel olarak nasıl saklanacağını ve erişilebileceğini belirler.
- Yetkilendirme ve güvenlik sağlar. Dosya sistem, dosya ve dizinlere kimlerin erişebileceğini kontrol eden izin mekanizmalarını içerir.
- Disk yönetimi sağlar. Depolama aygıtlarının kullanımını optimize ederek, verimli bir şekilde disk alanı kullanımını sağlar.
- Sistem işleyişinin desteklenmesini sağlar. Linux işletim sistemin çalışması için gerekli olan kernel, modüller ve yapılandırma dosyaları gibi sistem dosyalarını barındırır.
Linux’ta kullanılan Dosya Sistemi Türleri
- Ext (Extended Filesystem):
Linux çekirdeği için geliştirilmiş ilk dosya sistemidir ve Linux dosya sistemi ailesinin temelini oluşturur. Zamanla gelişine farklı Ext (Ext, Ext2, Ext3, Ext4) yeni özellikler ve iyileştirmeler sunarak yaygın olarak kullanılmaya devam etmiştir.
- Ext (1992)
Linux için tasarlanmış ilk dosya sistemi. 2 GB maksimum dosya boyutuna sahiptir. 255 karaktere kadar dosya adı uzunluğu.
Yetersiz kaldığı noktalar:
- Kötü performans (özellikle büyük dosyalarda).
- Fragmentasyon sorunu.
- Günümüz ihtiyaçlarına uygun gelişmiş özelliklerin eksikliği.
- Ext2 (1993)
“İkinci Genişletilmiş Dosya Sistemi” olarak anılır. Journal (günlükleme) desteği olmamasına rağmen hızlı bir dosya sistemidir. 2 TB’ye kadar dosya boyutlarını destekler. Dizin başına milyonlarca dosya barındırabilir. Genelde kullanım alanı, Flash bellek ve SSD’ler için uygundur çünkü günlüklü bir dosya sistemi değildir ve bu nedenle yazma/silme işlemleri daha azdır.
Yetersiz kaldığı noktalar:
- Güç kesintisi veya sistem çökmesi durumunda veri kaybı riski yüksektir.
- Journal eksikliği nedeniyle modern sistemler için yetersizdir.
- Ext3 (2001)
“Üçüncü Genişletilmiş Dosya Sistemi” olarak tanıtıldı. Journal desteği bulunur bu sayedeVeri bütünlüğünü korumak için loglama sağlar. Maksimum dosya boyutu: 2 TB tır ve Maksimum dosya sistemi boyutu: 16 TB. Veri kurtarma sürelerini hızlandırır. Daha az veri kaybı riski.
Yetersiz kaldığı noktalar:
- Performansı Ext4 kadar iyi değildir.
- Günümüzde daha modern dosya sistemleri varken eski bir seçenek olarak kalmıştır.
- Ext4 (2008)
“Dördüncü Genişletilmiş Dosya Sistemi” olarak geliştirilmiştir. Journaling özelliği sayesinde Geliştirilmiş veri güvenliği sağlar. Daha büyük dosya boyutu desteği sunar yani Tek bir dosya için 16 TB, dosya sistemi için 1 EB (exabyte) desteğine kadar ulaşır. Fragmentasyon azaltır Otomatik olarak dosyaların düzenli tutulmasını sağlar. Delayed allocation (gecikmeli tahsis) Disk performansını artırır. Geriye dönük uyumluluk yüksektir (Ext3 ve Ext2 ile). Modern Linux dağıtımlarında varsayılan dosya sistemi olarak kullanılmaktadır.
Yetersiz kaldığı noktalar:
- Daha büyük bir bellek ve işlem gücü gerektirir.
Ext Dosya Sisteminin Özellik Karşılaştırması;
| Özellik | Ext2 | Ext3 | Ext4 |
| Journaling | Yok | Var | Var |
| Maksimum Dosya Boyutu | 2 TB | 2 TB | 16 TB |
| Maksimum Disk Boyutu | 32 TB | 16 TB | 1 EB |
| Performans | Orta | İyi | Çok İyi |
| Fragmentasyon | Var | Daha az | Çok az |
| Geriye Dönük Uyum | – | Ext2 ile uyumlu | Ext2/Ext3 ile uyumlu |
- XFS (Extended Filesystem)
XFS dosya sistemi, yüksek performanslı ve ölçeklenebilir bir dosya sistemi olarak geliştirilmiştir. İlk olarak 1994 yılında Silicon Graphics, Inc. (SGI) tarafından IRIX işletim sistemi için tanıtılmış, daha sonra Linux çekirdeğine uyarlanmıştır. Günümüzde özellikle büyük veri hacimlerini yönetmek için tercih edilen dosya sistemlerinden biridir. Yüksek performanslı, özellikle büyük dosyalar için optimize edilmiş. Günlükleme yani Journaling sayesinde, dosya sistemi üzerinde yapılan değişikliklerin kaydını tutar. Bu, sistem çökmeleri sonrasında veri bütünlüğünün sağlanmasına yardımcı olsa da, forensics analizinde bazı zamanlar journalig verisi, dosya sistemi üzerinde yapılan değişikliklerin tam olarak anlaşılmasını zorlaştırabilir.
XFS, büyük veri kümeleriyle çalışırken dosya silme ve veri kaybı durumlarını incelemek zordur. Ancak büyük dosya boyutları ve dosya sistem büyüklüğü sayesinde, silinmiş veriler için kurtarma işlemleri daha fazla veri içerir ve dolasıyla kurtarılabilir veri miktarı artabilir. XFS, çevrim içi defragmentasyon özelliğine sahip olduğundan, dosya sistemi üzerinde yapılan değişikliklerin ve dosya hareketlerinin analiz edilmesi bazen zor olabilir. Ancak bu durum, forensics analizinde dosyaların yerini tespit etme ve zaman akışı analizi açısından zorluk yaratabilir. XFS dosya sistemindeki nanosecond çözünürlüğünde zaman damgaları, dosya erişim zamanlarının ve değişikliklerinin yüksek hassasiyetle izlenmesini sağlar. Bu, olayların tam zaman akışının ortaya konmasında oldukça değerlidir. XFS üzerinde silinen dosyalar genellikle hemen geri alınamayabilir. Ancak bazı durumlarda silinen dosyaların içeriği, dosya sisteminin journal’larında veya başka düşük seviyeli yapılarında iz bırakabilir.
XFS, snapshot almayı destekler. Bu, dosya sistemi durumu hakkında belirli bir zaman noktasında veri kopyası alınarak, analiz için faydalı olabilir.
XFS dosya sistemi, ilk olarak Silicon Graphics Inc tarafından IRIX işletim sistemi için oluşturuldu. SGI, Linux alanına geçiş yaptığında, XFS’i de beraberinde getirdi. Günümüzde XFS, yüksek performanslı bir Linux dosya sistemi için popüler bir seçimdir. Birçok alt düzey Ağ Bağlantılı Depolama (NAS) cihazı, basitçe disk dizileri ile bağlantılı Linux sistemleridir ve Linux yazılım RAID ve XFS çalıştırır. XFS ayrıca Red Hat, RHEL 7 ile başlayarak varsayılan dosya sistemi olarak XFS’yi duyurduğunda büyük bir popülerlik kazandı. Ne yazık ki, XFS için sınırlı adli bilişim aracı desteği bulunmaktadır.
ANA ÖZELLİKLER
- Günlükleme dosya sistemi
- 64-bit adresleme
- Gerektiğinde tahsis edilen inode’lar
- Extent tabanlı dosya tahsisi
- Nanosecond çözünürlüğe sahip MACB zaman damgaları
- Tüm dosya sistemi veri yapıları big-endian
XFS, modern, günlükleme dosya sistemidir. 64-bit adresleme kullanır ve bu nedenle teorik olarak ekabayt aralığına kadar büyük hacimler ve dosyalar oluşturma potansiyeline sahiptir. EXT gibi, XFS için varsayılan blok boyutu 4K’dir, ancak XFS inode’ları 512 bayttır, bu da onları EXT4 inode’larından bile çok daha büyük yapar. Bu büyük inode boyutu, XFS’ye NTFS’ye benzer şekilde inode’da ikamet eden veri potansiyeli sağlar. Mevcut XFS uygulaması, küçük dizinleri inode’da tutar, ancak ikamet eden veri dosyaları için destek yoktur. Ayrıca, XFS geleneksel Unix dosya sistemleri gibi inode’ları önceden tahsis etmez. Daha fazla inode gerektiğinde, XFS basitçe dört veri bloğundan (16K) oluşan bir grup alır ve bunları inode depolaması için ayırır. Bu, dosya meta verilerini dosya verilerine yakın tutma eğilimindedir ve inode depolaması için dosya sisteminde daha az ek yük anlamına gelir. Inode adresleme, dosya sisteminin başlangıcından itibaren fiziksel offsete dayalıdır ve bu nedenle inode numaralandırması geleneksel Unix dosya sistemlerindeki gibi sıralı değildir.
EXT4 gibi, XFS de nanosecond çözünürlüğünde MACB zaman damgalarını destekler. Mevcut üretim sürümünde, XFS Unix epoch zamanında 32-bit saniye ve 32-bit kesirli saniyeler kullanır, bu da XFS’in geleneksel Unix 2038 tarih geçiş sorununa sahip olduğu anlamına gelir. XFS’in mevcut geliştirme çalışmaları (çekirdek 5.10’da yayımlanmıştır), dosya sistemi iç tarih formatını 1901 Aralık epoch’lu 64-bit nanosecond sayaçlarına değiştiren “bigtime” adlı bir özelliği içermektedir ve bu, maksimum tarihi 2486 yılına kadar uzatır. Tüm XFS dosya sistemi veri yapıları ve adresleri, işlemci mimarisine bakılmaksızın big-endian formatında saklanır. XFS, orijinal olarak SGI tarafından MIPS RISC işlemcileri için geliştirilmiştir ve bu işlemciler big-endian CPU’lardı. Açıkçası, bu özellik, XFS verilerini bir hex düzenleyicisinde inceliyorsanız (benim gibi) sizi çok ilgilendirmeyecektir.
XFS’NİN FARKLILIKLARI NELERDİR?
- Her dosya sistemi, birkaç Tahsis Grubundan (AG) oluşur.
- Her AG bağımsız olarak yazılabilir.
- Daha hızlı veri aktarımı için paralel yazımlara izin verir.
XFS’in diğer dosya sistemlerine kıyasla gerçekten farklı olan yönü, her XFS dosya sisteminin birden çok tahsis grubuna (AG) bölünmüş olmasıdır. XFS varsayılan olarak dosya başına dört AG kullanır, ancak dosya sistemini oluştururken bunu ayarlayabilirsiniz. Her AG, diğer AG’lerden bağımsız olarak yazılabilen kendi dosya sistemi gibidir. Bu, birden çok iş parçacığının birbirine müdahale etmeden veya kilit almak zorunda kalmadan farklı AG’lere yazmasına olanak tanır. Bu, XFS’in çok çekirdekli CPU mimarilerinde çok hızlı veri aktarımı sağlar. Dosya sisteminin birincil superblock’u AG 0’ın başlangıcında bulunur ve yedeklilik için diğer AG’lerin başlangıcında çoğaltılmış superblock’lar tutulur.
- Btrfs (B-Tree Filesystem):
Btrfs (B-Tree Filesystem), Linux için geliştirilen modern bir dosya sistemi olup, özellikle veri bütünlüğü, esnek depolama yönetimi ve gelişmiş özellikleriyle dikkat çeker. Forensics (adli bilişim) açısından Btrfs, olay incelemelerinde önemli avantajlar ve bazı zorluklar sunar. Öncelikle, Btrfs’in sunduğu anlık görüntü (snapshot) özelliği, belirli bir zaman dilimindeki dosya sistemi durumunu kaydetme imkanı tanır. Bu, bir olay anında sistemin tam bir kopyasını alarak, sonrasında yapılan değişiklikleri analiz etme fırsatı sağlar ve olayın kronolojisini anlamada büyük kolaylık sağlar. Ayrıca, Btrfs veri ve meta veriler için checksum (kontrol toplamı) kullanarak veri bütünlüğünü sağlar. Bu sayede veri bozulmaları tespit edilebilir, ancak aynı zamanda bu özellik değişikliklerin tespitini zorlaştırabilir çünkü checksum’lar, veri üzerinde yapılan küçük değişikliklerin bile fark edilmesini sağlar. Btrfs’in Copy-on-Write (CoW) mekanizması, veri yazıldığında orijinal verinin üzerine yazılmak yerine yeni bir blok tahsis edilmesini sağlar. Bu durum, silinen verilerin geri getirilmesini kolaylaştırabilir çünkü eski veriler fiziksel olarak disk üzerinde kalmaya devam eder. Ancak, bu mekanizma aynı zamanda disk alanının hızla dolmasına neden olabilir ve forensics analizinde karmaşık veri yapıları oluşturabilir. Btrfs ayrıca alt hacimler (subvolumes) desteği sunar, bu da tek bir dosya sistemi içinde birden fazla bağımsız veri kümesi yönetilmesine olanak tanır. Forensics açısından, her alt hacmin ve bunların anlık görüntülerinin ayrı ayrı analiz edilmesi gerekebilir, bu da inceleme sürecini karmaşıklaştırabilir. Sıkıştırma desteği, Btrfs’in veri depolama verimliliğini artırırken, sıkıştırılmış verilerin forensics analizini zorlaştırabilir çünkü verilerin sıkıştırılmış olması, kurtarma ve inceleme süreçlerini karmaşıklaştırabilir. Ayrıca, Btrfs’in veri kurtarma işlemleri, checksum ve CoW özellikleri nedeniyle klasik dosya sistemlerine göre daha fazla uzmanlık gerektirebilir. Silinen verilerin tamamen kaybolması olasılığı düşüktür, ancak fiziksel disk analizi sırasında eski bloklara erişim sağlanabilir. Meta verilerdeki yüksek hassasiyetli zaman damgaları, dosya erişim ve değişikliklerinin detaylı bir şekilde analiz edilmesini mümkün kılar. Genel olarak, Btrfs’in gelişmiş özellikleri, forensics analizlerinde hem güçlü araçlar sunarken hem de daha derinlemesine bilgi ve uzmanlık gerektiren bazı zorluklar ortaya çıkarır.
- ReiserFS:
ReiserFS, Linux için geliştirilmiş bir dosya sistemi olup özellikle küçük dosyaların verimli depolanması ve yüksek performansıyla dikkat çeker. Adli bilişim (forensics) perspektifinden incelendiğinde, hem avantajları hem de bazı sınırlamaları vardır. ReiserFS’in temel özelliği, küçük dosyalar için blokları optimize eden bir yapı kullanmasıdır. Bu sayede, dosya sistemi alanı çok daha verimli şekilde kullanılır ve küçük dosyaların sıkça bulunduğu sistemlerde hızlı erişim sağlanır. Ancak bu özellik, forensics analizinde zorluk yaratabilir çünkü dosyalar fiziksel olarak birden fazla blokta depolanabilir ve bu da silinen dosyaların izlerinin bulunmasını daha karmaşık hale getirebilir. ReiserFS, metadata yönetiminde B-Tree (B-Agacı) yapısını kullanır ve bu da dosya sistemi işlemlerinin hızlı bir şekilde gerçekleştirilmesine olanak tanır. Metadata’nın bu şekilde yönetimi, dosya erişim ve değişiklik kayıtlarının detaylı bir şekilde saklanmasını sağlar. Ancak, silinmiş dosyalar söz konusu olduğunda, ReiserFS, metadata’yı hızlı bir şekilde temizlediği için kurtarma olasılığı düşebilir. Journaling (günlükleme) desteği, dosya sistemi çökmesi durumunda veri bütünlüğünü korumaya yardımcı olur. Bu, forensics analizinde olay zamanında dosya sistemi üzerinde yapılan işlemlerin bir kısmını ortaya çıkarabilir. Ancak, bu günlükleme mekanizması genellikle sınırlı bilgi tutar ve detaylı inceleme için yetersiz kalabilir. ReiserFS’in dezavantajlarından biri, uzun süre aktif geliştirilmemiş olmasıdır. Bu nedenle, modern dosya sistemlerinde olduğu gibi ileri düzey kurtarma araçları veya forensics analiz yöntemleri bulunmayabilir. Bununla birlikte, eski Linux sistemlerinde veya özel sistemlerde hâlâ kullanılma ihtimali nedeniyle, analiz yapılırken ReiserFS’in bu özelliklerini göz önünde bulundurmak önemlidir.
Forensics açısından ReiserFS, özellikle küçük dosya boyutlarıyla çalışan sistemlerde dikkatli bir inceleme gerektirir. Metadata analizi ve disk bloklarının fiziksel yapısına odaklanılarak silinmiş veya gizlenmiş verilerin kurtarılma şansı artırılabilir. Ancak bu süreç, daha modern dosya sistemlerine kıyasla daha fazla uzmanlık ve özel araçlar gerektirir.
- FAT ve NTFS:
FAT ve NTFS dosya sistemleri Linux işletim sistemlerinde desteklenir, ancak Linux’ta yerel dosya sistemleri (örneğin, ext4, XFS veya Btrfs) kadar sık kullanılmaz. Bu dosya sistemleri genellikle taşınabilir cihazlar (USB sürücüler, SD kartlar) veya Windows sistemleriyle veri paylaşımı için tercih edilir. Çapraz platform desteği için kullanılır (Windows ile uyumlu)

FOR577
Linux Dosya Sistem Analizi
Linux dağıtımlarında kullanılan farklı dosya sistemleri, forensics süreçlerinde kullanılan araçlar ve analiz yöntemlerini etkiler. EXT tabanlı sistemlerde fls ve istat gibi araçlar öncelikli iken, XFS ve Btrfs için bu araçlar yerine daha özelleşmiş çözümler tercih edilir. Dosya sistemine uygun araçlarla inceleme yapılması, doğru ve eksiksiz bir analiz için kritiktir. Linux dosya sistemi yapısı, kullanılan dağıtıma bağlı olarak farklılık gösterebilir. Ancak temel prensipler, dosya sisteminin yapısını ve fonksiyonlarını anlamak için her dağıtımda benzerdir. Linux dosya sistemlerine dair detaylar ve forensics açısından nasıl analiz edileceği özetle tabloda sunulmuştur.
Linux Dosya Sistemi ve Yapısal Detaylar
| Kriter | Ubuntu/Debian Tabanlı | RHEL/CentOS Tabanlı | Arch Linux Tabanlı | SUSE/openSUSE Tabanlı |
| Varsayılan Dosya Sistemi | ext4 | XFS | Kullanıcı seçimine bağlı (ext4, Btrfs yaygın) | Btrfs (openSUSE için) veya XFS (SUSE Linux için) |
| Superblock | EXT dosya sistemlerinde metadata içerir, dumpe2fs ile analiz edilir. | XFS superblock metadata verileri xfs_db ile analiz edilir. | ext4 için benzer analiz yapılır. | Btrfs için btrfs inspect-internal kullanılır. |
| Block Groups | ext dosya sistemlerinde dosyaların fiziksel gruplarını tutar. | XFS’te inode grupları ile ilişkili olarak düzenlenir. | ext yapılarına benzer düzenleme. | Btrfs’in meta ve veri grupları vardır. |
| Inodes | Dosya metadata bilgilerini içerir, istat ile analiz edilir. | XFS’de inode bilgisi xfs_db ile alınır. | ext yapısında aynı inode mantığı kullanılır. | Btrfs inode bilgileri btrfs check ile alınabilir. |
| Hard ve Soft Linkler | ln komutu ile oluşturulur, ls -l ile analiz edilir. | Aynı şekilde, hard/soft link yapılandırması standarttır. | Yapılandırma diğer ext sistemlere benzer. | Soft/hard link analizi benzer şekilde yapılır. |
| Alter MAC Times | Metadata zaman bilgileri (stat, fls) ile görüntülenir. | XFS için MAC zaman bilgisi xfs_metadump ile alınır. | Standart Linux araçlarıyla (örn. stat) incelenir. | btrfs check ile zaman bilgileri alınabilir. |
| Indirect Block Pointers | ext sistemlerinde blok adresleme için kullanılır. | XFS’de bu yapı farklıdır; adresleme inode tabanlıdır. | ext yapılarına benzer bir mekanizma. | Btrfs’te farklı veri grupları ve pointer yapıları vardır. |
| Data Unit Layers | ext sistemlerinde veri bloklarını ve journal yapılarını içerir. | XFS, veri ve meta veriyi ayrı saklar. | ext benzeri mekanizmalar. | Btrfs, CoW (Copy-on-Write) mekanizmasını kullanır. |
Linux Dağıtımları İçin Analiz ve Araçlar
Dosya Sistemi Türleri
- EXT2/EXT3/EXT4: Ubuntu/Debian gibi birçok dağıtımda varsayılan veya yaygın dosya sistemi. Metadata analiz araçları: fls, istat, ls.
- XFS: RHEL, CentOS gibi kurumsal dağıtımlarda yaygın. Araçlar: xfs_db, xfs_metadump.
- Btrfs: openSUSE ve Arch Linux’ta kullanıcılar tarafından tercih edilebilir. Araçlar: btrfs check, btrfs inspect-internal.
Superblock ve Metadata Analizi
- EXT: dumpe2fs /dev/sdX ile superblock bilgileri ve yedekleri incelenir.
- XFS: xfs_repair -n /dev/sdX veya xfs_db ile metadata okunur.
- Btrfs: btrfs inspect-internal dump-super /dev/sdX ile metadata bilgisi alınır.
Inode Analizi
- EXT: istat ve debugfs araçları inode içeriğini inceler.
- XFS: xfs_db inode bilgisi için kullanılır.
- Btrfs: İleri düzey analiz için btrfs inspect-internal kullanılır.
MAC Zamanları ve Journaling
- EXT4: Access, Modify, Change zaman bilgileri stat ve fls ile alınır.
- XFS: Journaling yapısı farklıdır, log analizi için xfs_logprint kullanılır.
- Btrfs: CoW mekanizması nedeniyle zaman bilgileri btrfs scrub ile doğrulanabilir.
Linux EXT Dosya Sistemlerinin İç Yapısı ve Silinen Dosyalardan Geriye Kalanlar
Linux EXT dosya sistemleri (EXT2, EXT3, EXT4), dosyaların nasıl depolandığı ve yönetildiği konusunda karmaşık bir iç yapıya sahiptir. Bir dosya silindiğinde, dosyanın verileri hemen fiziksel olarak diskten kaldırılmaz. Bunun yerine, dosyanın meta verileri (örneğin, inode bilgileri) güncellenir ve dosyanın kapladığı disk alanı “boş” olarak işaretlenir. Bu, veri kurtarma işlemlerinin mümkün olmasını sağlar.
EXT Dosya Sistemlerinin Temel İç Yapısı:
- Inode’lar: Her dosya ve dizin, dosya boyutu, izinler, sahip bilgileri ve veri bloklarının konumu gibi bilgileri içeren bir inode ile temsil edilir.
- Veri Blokları: Dosyaların gerçek içeriği bu bloklarda saklanır.
- Extent’ler (EXT4): EXT4, dosyaların veri bloklarını daha verimli bir şekilde yönetmek için “extent” adı verilen bir yapı kullanır. Bu, dosya verilerinin ardışık bloklar halinde depolanmasını sağlar.
- Dizin Yapısı: Dizinler, dosya adlarını ve bunlara karşılık gelen inode numaralarını içeren özel dosyalardır.
Bir Dosya Silindiğinde Ne Olur?
- Dosyanın inode’u serbest bırakılır ve dosya sisteminin boş inode listesine eklenir.
- Dosyanın veri blokları boş olarak işaretlenir, ancak bu bloklardaki veriler hemen silinmez.
- Dosya adı, dizin girişinden kaldırılır.
Veri Kurtarma Stratejileri:
- Inode Analizi: Silinen dosyanın inode’u hala diskte olabilir. Inode’ları analiz ederek dosyanın veri bloklarının konumunu belirlemek mümkün olabilir.
- Journaling (EXT3/EXT4): EXT3 ve EXT4, dosya sistemindeki değişiklikleri kaydeden bir journal (günlük) tutar. Bu journal, silinen dosyalar hakkında bilgi içerebilir.
- Disk Tarama: Dosya sisteminin boş bloklarını tarayarak silinen dosyaların kalıntılarını bulmak mümkündür. Bu, özellikle dosya parçalanmamışsa etkilidir.
- Yedek Süper Bloklar: Dosya sisteminin süper blok yedekleri, dosya sisteminin durumu hakkında bilgi sağlayabilir ve bozulmuş dosya sistemlerinden veri kurtarmaya yardımcı olabilir.
EXT4 Detaylandırılması
EXT4, çok eski bir dosya sisteminin modern hâlidir. EXT4, Unix için Marshall Kirk McKusick tarafından geliştirilen “Fast File System”e (Hızlı Dosya Sistemi) kadar uzanan çok eski bir Unix dosya sisteminin en son sürümüdür. Diğer Unix çeşitlerindeki benzer dosya sistemleri arasında BSD’deki FFS, Solaris ve HP-UX’teki UFS ve benzerleri bulunmaktadır. Bu bölümde kullanacağımız araçlar, bu yaygın Unix dosya sistemlerinin herhangi biri ile çalışır. Elbette, Linux’ta karşılaşabileceğiniz başka dosya sistemleri de vardır, bunlar arasında ZFS, XFS ve BtrFS bulunmaktadır. Bu dosya sistemleri için adli destek şu anda “sınırlı ila yok” durumundadır.
EXT FILE SYSTEM LAYERS

https://archive.org/details/HalLinuxForensics
Dosya sistemleri, “beş katmanlı” bir model olarak kavramsallaştırılabilir:
- Fiziksel Katman (Partition Table, Sector): Fiziksel sürücü veya cihaz ve üzerindeki bölümler. Bölüm geometrisi, diskin başında bir bölüm tablosu (bazen Hacim İçindekiler Tablosu (VToC) veya disk etiketi olarak adlandırılır) tarafından tanımlanır. Sektörler, disk denetleyicisi tarafından adreslenebilen en küçük depolama birimidir.
- Dosya Sistemi Katmanı (Superblock): Diskteki her bölümdeki dosya sistemleri ile ilişkili tüm yapılandırma ve yönetim verilerini içerir. Unix dosya sistemleri için bu katmandaki temel yapı, superblock olarak adlandırılan bir nesnedir.
- Dosya Adı Katmanı (Directory Files): İnsan tarafından okunabilir dosya adlarını meta veri adreslerine eşlemekten sorumludur. Unix dosya sistemlerinde bu, dosya adlarını aşağıdaki katmandaki dizin düğümü (inode) numaralarına eşleyen özel dizin dosyalarıyla gerçekleştirilir.
- Meta Veri Katmanı (Index Nodes): Dosyaların tanımlanması ve sınırlandırılmasından sorumlu olan tüm veri yapılarını içerir. Unix dosya sistemlerinde, dosyalar hakkında meta veri depolayan ve dosyanın içeriğini oluşturan disk bloklarına işaretçileri olan indeks düğümleri (inodes) olarak adlandırılan nesneler kullanırız.
- Veri Katmanı (Blocks): Disk depolamanın gerçek veri birimlerini içerir – Unix dosya sistemlerinde genellikle bloklar olarak adlandırılır (Windows dosya sistemleri, bloklar yerine kümeler terimini kullanır).
- Katman PHYSICAL LAYER: DISK PARTITIONS
Bir disk bölümlere ayrılabilir Diskin başındaki bölüm tablosu bir harita sağlar Her bölüm, Linux’ta bağımsız bir cihaz olarak ele alınır Bir bölüm genellikle bir dosya sistemi veya takas (swap) içerir Fiziksel katman, fiziksel disk cihazını ve onu tanımlayan yapıları içerir. Bir disk sürücüsü (dosya sistemi ile) en az bir bölüm içermelidir, ancak birçok bölüme de ayrılabilir. Her diskin önünde bir bölüm tablosu veya Hacim İçindekiler Tablosu (VToC) bulunur. BSD sistemleri, sürücü için temel bölümleme bilgilerine ek olarak kendi BSD’ye özgü disk etiketine de sahip olabilir. Linux sistemleri genellikle dört “birincil” bölüm ve gerekirse zincirli “genişletilmiş” (mantıksal) bölümler içeren eski DOS Ana Önyükleme Kaydı (MBR) stilindeki bölümleri kullanır. GPT (GUID Bölüm Tabloları), geleneksel MBR stilindeki bölüm tablolarının birçok sınırlamasının üstesinden gelmek için tasarlanmış daha yeni bir disk bölümleme şemasıdır ve bazı Linux sistemlerinde bulunabilir. Aynı diskte birden fazla bölüm bulunsa da, Unix işletim sistemi onları bağımsız cihazlar olarak kabul eder ve /dev dizinindeki bireysel girişler aracılığıyla dosya I/O işlemleri gerçekleştirir. Örneğin, /dev/sda1, /dev/sda2 gibi. Bazı bölümler EXT4 gibi bir dosya sistemi içerirken, gördüğümüz gibi daha karmaşık RAID ve LVM yapılandırmaları da yaygındır. Bazen bir dosya sistemi formatlanmaz—örneğin, Unix takas bölümleri tipik olarak “ham” bölümleri kullanır ve bazı veritabanları performansı artırmak için ham bölümleri kullanmaya çalışır.
- Katman FILE SYSTEM LAYER: SUPERBLOCK
Dosya Sistemi Katmanı, bir bölüm içindeki dosya sistemini tanımlayan verileri içerir. Unix, aşağıdaki verileri içeren bir superblock kullanır:
- Dosya sistemi türü/boyutu, blok boyutu, blok/inode sayısı vb.
- Değiştirme zamanı, son monte edildiği yer, temiz/kirli durumu
- Dosya sistemi günlüğü için inode’a işaretçi (EXT3 ve üstü)
Bir bölümde bir dosya sistemi oluşturulduğunda, bölümün başında o bölümde bulunan dosya sisteminin özelliklerini tanımlayan bir veri yapısı oluşturulur. Unix dosya sistemleri için bu veri yapısına superblock denir.
Superblock, dosya sisteminin önünden 1024 bayt offset ile bulunabilen 512 baytlık bir veri yapısıdır (bu offset, birisinin yanlışlıkla sürücünün ön kısmını üzerine yazmasını engellemek için tasarlanmıştır). Superblock, dosya sistemi türü, blok boyutu, dosya sistemindeki blok ve inode sayısı, tahsis edilmemiş blok ve inode sayısı gibi temel dosya sistemi bilgilerini içerir. Ayrıca, dosya sisteminin son monte edildiği zaman, monte edildiği yer, düzgün bir şekilde bağlantısı kesilip kesilmediği gibi dosya sistemi kullanımı hakkında bilgiler içerir. Superblock, ilk superblock’taki disk arızasına karşı hata toleransı sağlamak için dosya sisteminin birçok yerinde çoğaltılır. EXT3 ve sonraki dosya sistemleri için, superblock dosya sistemi günlüğünün inode’una işaret eden bir işaretçi içerir (ancak bu her zaman Linux dosya sistemlerinde inode numarası 8’dir). Superblock, dosya sisteminin kök dizininin inode’una işaret eden bir işaretçi içermez, çünkü gelenek gereği inode 2 kök dizin için ayrılmıştır (Unix dosya sisteminin eski sürümlerinde, inode numarası 1 olan “dosya” kötü blok adreslerini depolamak için kullanılırdı).
- Katman BLOCK GROUPS
Bloklar, 32K bloktan oluşan Blok Gruplarına organize edilmiştir. Her blok grubu, inodları ve veri bloklarını içerir. Blok ve inode tahsis bit eşlemeleri her biri 1 blok kaplar. Ayrıca yedek superblock vb. içerebilir.

https://archive.org/details/HalLinuxForensics
Superblock’a ek olarak, EXT dosya sistemi meta verileri ayrıca blok grup tanımlayıcı tablosunu da içerir. Dosya sistemindeki veri blokları, 32K bloktan oluşan blok gruplarına ayrılmıştır. Her blok grubu içinde, dosya meta verilerini (zaman damgaları, sahiplikler, izinler vb.) içeren inode’ları depolamak için bazı bloklar ve veri (dosya içeriği) için bazı bloklar ayrılır.
Tipik olarak, her 32K blok grubunda 8K inode bulunur (dosya sistemi oluşturulurken bu oran ayarlanabilir, ancak genellikle dört veri bloğuna bir inode oranı kullanılır). EXT4’te varsayılan blok boyutu 4K’dir ve EXT4 inode’ları 256 bayt boyutundadır, bu nedenle blok grubunun 512 bloğu inode’ları tutmaya ayrılmıştır.
Buna ek olarak, blok grubunun önünde, gruptaki her bloğun tahsis durumunu izleyen blok bitmap’i yer alır. Tek bir 4K blok, bireysel blokları izlemek için 32K bit içerir, bu nedenle varsayılan blok grup boyutu 32K bloktur. Ayrıca, her inode’un tahsis durumunu izlemek için başka bir blok da ayrılmıştır.
Bazı blok grupları, superblock ve blok tanımlayıcı tablosunun yedeğini de içerebilir. Bunlar, blok ve inode tahsis bit eşlemelerinden önce blok grubunun önünde ek bloklar tüketir.
- Katman DATA LAYER: BLOCKS
Veri Katmanı, dosyaların içeriklerinin depolandığı yerdir. Temel depolama birimi bir bloktur. Bloklar, sektörlerden oluşur (EXT’te genellikle 8). Bu, dosya sistemindeki dosya I/O’sunun en küçük birimidir. Verimlilik için, bir dosyayı oluşturan bloklar mümkün olduğunda ardışık olarak tahsis edilir. Veri katmanı, ikili bilgilerin diskte gerçekten depolandığı yerdir. Disk cihazı tarafından adreslenebilen en küçük depolama birimi genellikle 512 baytlık bir sektördür. Ancak, I/O performansını artırmak için EXT dosya sistemleri genellikle blok olarak adlandırılan 4K’lık parçalar halinde okuma/yazma işlemleri yapar. Modern Linux dosya sistemlerinde, standart 4K blok boyutu, herhangi bir dosyaya tahsis edilecek minimum veri miktarıdır. Dosya 4K’dan küçükse, bloğun geri kalanı kullanılmaz veya “artık” alan olarak kalır. Linux dosya sistemlerinde artık alan null doldurulur, bu yüzden Windows’ta olduğu gibi Linux dosya artıklarından veri kurtarmayı beklemeyin. Ancak, uzun null dizileri genellikle bir dosyanın sonuna ulaştığınızı anlamanın iyi bir yoludur. Birden çok bloğu kapsayan büyük bir dosya yazarken, dosya sistemi mümkün olduğunda ardışık bloklar tahsis etmeye çalışır. Bu, dosya sisteminin geniş dilimlerde “ileri okuma” yapabilmesi nedeniyle okuma verimliliğini artırır. Ancak, bu eğilim, silinmiş verileri kurtarmaya çalışırken de yararlıdır.
- Katman METADATA LAYER: INODES
Meta Veri Katmanı, dosyalar hakkında “içerik dışı” verileri depolar. Bu katmanda kullanılan yapılar inode olarak adlandırılır—her dosyanın bir inode’u vardır.

https://archive.org/details/HalLinuxForensics
Dosyanın içeriği önemlidir, ancak dosya ile ilişkili diğer içerik dışı parametreler de önemlidir. Zaman damgaları, dosya sahipliği ve izinler, dosya boyutu ve türü vb. Unix dosya sistemleri, bu verileri depolamak için indeks düğümlerini yani inode olarak adlandırılan yapılarını kullanır. Inode’lar, dosya adı hariç olmak üzere “ls -l” çıktısında görmeye alışkın olduğunuz dosyayla ilgili her şeyi depolar. Bir inode ayrıca dosyanın içeriğini oluşturan veri bloklarına işaret eden işaretçilere sahiptir. Daha önce gördüğümüz gibi, inode’lar her blok grubundaki veri bloklarına depolanır. Her inode’un bir adresi vardır. Her dosya ile ilişkilendirilmiş inode numarasını “ls -i” komutunu kullanarak görebilirsiniz.
- Katman FILE NAME LAYER: DIRECTORIES
Bölüm (major/minor cihaz numarası) ve inode numarası, çekirdeğin dosyaları nasıl izlediğidir. İnsanlar dosyalara sayı dizileriyle erişmekten hoşlanmazlar. Dizin dosyaları, dosya adlarını inode numaralarıyla ilişkilendirir. Unix işletim sistemi, dosyaları inode numarası ve dosyayı barındıran disk bölümüne ait cihaz numaraları ile izler. Ancak, insanlar dosyaları adlandırmak için bir dizi sayıyı uygun bulmazlar, bu yüzden insanlar ve makineler arasında bir arayüz katmanı gereklidir. İnsan Arayüzü (veya Dosya Adı) Katmanı, insan tarafından okunabilir dosya adlarını işletim sistemi tarafından kullanılan inode numaralarıyla ilişkilendirmek amacıyla özel dosya sistemi nesneleri içerir. Bu “özel nesnelere” dizinler (directory) denir.
Özet Dosya Sistemi Terminolojisi
- BLOCK (BLOK):
Dosya sisteminde erişilebilen en küçük depolama alanı birimidir. - BLOCK GROUPS (BLOK GRUPLARI):
Dosya sistemiyle ilgili bilgileri içeren blok gruplarıdır. - EXTENT (UZANTI):
Ardışık bloklardan oluşan bir gruptur. - SUPERBLOCK (SÜPER BLOK):
Diğer yapıları tanımlayan dosya sistemi meta verilerini içeren bloktur. - INODE (DİZİN DÜĞÜMÜ):
Bir “dizin düğümü.” Dosya meta verilerini ve sürücüdeki konumunu saklar. - INODE BITMAP (INODE BİTMAP):
Bir grupta hangi inode’ların kullanıldığını ve veri bloklarının konumlarını kaydeder.
Linux Dizin Sistemi Yapısı
Dizinler, dosya adlarını inode’larla ilişkilendiren özel dosyalardır. Geleneksel Unix dosya sistemlerinde, bir dizin “dosyası”, dosya adlarını ve bunların karşılık gelen inode’larını depolayan sıralı bir kayıt listesidir. Bir dizini listelediğinizde, aslında dizin “dosyasının” içeriğini döküyorsunuz demektir. Dizin kayıtlarının, “ls -F” gibi komutların her dosya için inode’u okumadan çıktı üretmesi için bir baytlık dosya türü bilgisi de içerdiğine dikkat edin.
Dizinler, dosya sistemine hiyerarşik yapısını verir. İşletim sisteminde /home/ma/.profile gibi bir dosyaya erişmeye çalıştığınızda neler olur;
- İnode2’nin dosya sisteminin kökü için ayrıldığını unutmayın, bu nedenle dosya sistemi sürücüsü bu “dosyayı” açarak başlar.
- İşletim sistemi, bu inode tarafından işaret edilen kök dizin “dosyasının” içeriğini okur ve “home” girişi ve bu girişle ilişkili inode’u bulana kadar devam eder.
- İşletim sistemi daha sonra “home” dizin girişindeki inode’u açar—bu başka bir dizin “dosyasıdır” ve işletim sistemi, “ma” girişini ve onun inode’unu bulana kadar içeriği tarar.
- Şimdi /home/ma inode’una sahibiz—yine başka bir dizin, bu yüzden işletim sistemi .profile girişini bulmak için dizini taramak zorundadır.
- Son olarak, işletim sistemi /home/ma/.profil açar
Linux Sistemlerde Genel dizin yapısı şu şekildedir;

FOR 577
Linux dosya sistemi, ağaç benzeri bir hiyerarşiye sahiptir ve root dizini (/) ile başlar. Diğer tüm dosyalar ve dizinler bu root dizinin altında bulunur.
Temel Dizinler
| Dizin | Açıklama |
| / | Kök dizin. Tüm dosyaların ve dizinlerin başlangıç noktasıdır. |
| /bin | Temel sistem komutlarını içerir (ör. ls, cat, cp). |
| /boot | Linux çekirdeği ve önyükleme dosyalarını barındırır. |
| /dev | Donanım aygıt dosyalarını içerir (ör. sda, tty). |
| /etc | Sistem yapılandırma dosyalarını içerir. |
| /home | Kullanıcıların kişisel dosyalarını depoladığı dizin. |
| /lib | Temel sistem kütüphanelerini içerir. |
| /var | Sürekli değişen dosyalar (log dosyaları, e-posta, yazıcı kuyrukları vb.). |
| /tmp | Geçici dosyalar için kullanılan dizin. |
| /usr | Sistem dışı programlar ve kütüphaneler. |
Linux dosya sistemi yapısı (ağaç yapısı), Linux Standart Dosya Sistemi Hiyerarşisi (Filesystem Hierarchy Standar – FHS) tarafından tanımlanmıştır ve bu yapı genellikle tüm Linux Dağıtımları arasında büyük ölçüde aynıdır. Ancak bazı farklılıklar dağıtımdan dağıtıma değişebilir.
FHS, /bin, /etc, /usr, /var gibi temel dizinlerin nerede bulunması gerektiğini ve hangi işlevlere sahip olduğunu belirler. Çoğu Linux dağıtımı, bu standartlara uyar. Linux dosya sistemi yapısı temelde sabittir ve FHS’ye dayanır, ancak kullanılan dağıtıma bağlı olarak bazı değişiklikler gösterebilir.
1. Debian/Ubuntu (Debian Tabanlı Dağıtımlar)
- Genellikle /srv dizinini aktif olarak kullanır (hizmetlerle ilgili veri depolar).
- /var/log altında daha kapsamlı log yönetimi sunar.
2. Red Hat/CentOS/Rocky Linux (RHEL Tabanlı Dağıtımlar)
- /usr/libexec dizinini yaygın olarak kullanır (yardımcı programlar için).
- SELinux (Security-Enhanced Linux) ile dosya izinlerini genişletilmiş bir güvenlik katmanı olarak destekler.
3. Arch Linux
- Kullanıcıların özelleştirmelerine odaklandığından, dosya sisteminde tamamen kullanıcı tercihine göre yapılandırmalar yapılabilir.
- Minimal bir kurulum sunduğu için gereksiz dizinler varsayılan olarak yer almaz.
4. openSUSE
- /var/opt ve /srv dizinlerini aktif olarak kullanır.
Linux Forensics Analizi Esnasında Önemli Dizinler ve Dosyalar
Farklı Linux dağıtımları, önemli dizinler ve dosyalarda genel olarak benzer yapı kullanır. Ancak dosya sistemlerinin işleyişi, kullanılan araçlar ve bazı yapılandırma detayları farklılık gösterebilir. “Unix’te, adı bir nokta (‘.’) ile başlayan herhangi bir dosya veya dizin isminin ‘gizli’ dosya olarak kabul edildiği bir gelenek vardır ve bu dosyalar, ‘ls’ komutunun çıktısında varsayılan olarak gösterilmez. Gizli dosya ve dizinleri görmek için ‘ls -a’ veya ‘ls -A’ komutlarını kullanabilirsiniz. Başında ‘.’ bulunan dosya ve dizin isimleri gizlidir Onları görmek için “ls -a” veya “ls -A” komutlarını kullanın
Aşağıda kritik dizinler ve dosyalar farklı Linux tabanlı dağıtımlar için açıklanmıştır.
Önemli Dizinler ve Dosyalar
| Dizin/Dosya | Ubuntu/Debian Tabanlı | RHEL/CentOS Tabanlı | Arch Linux Tabanlı | SUSE/openSUSE Tabanlı | Analizde Dikkat Edilecekler |
| /etc/passwd | Kullanıcı bilgileri, şifre hash’leri şifrelenmez (şifreler /etc/shadow’da). | Aynı yapı. | Aynı yapı. | Aynı yapı. | Kullanıcı hesaplarını kontrol edin. Şüpheli kullanıcılar ve UID’ler (örn. 0 UID, root yetkisi) aranır. |
| /etc/shadow | Şifre hash’leri buradadır, yalnızca root erişimi vardır. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Zayıf şifre hash türlerini (DES, MD5 gibi) tespit edin. Son giriş tarihlerini kontrol edin. |
| ~/.bash_history | Kullanıcı komut geçmişi, genellikle bash shell için tutulur. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Şüpheli komutlar, root yetkisiyle çalıştırılmış işlemler veya izinsiz aktiviteler aranır. |
| /etc | Sistem yapılandırma dosyaları, kullanıcı yetkileri, servis yapılandırmaları. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Değişiklik tarihlerini kontrol edin. Varsayılan yapılandırmalardan sapmalar araştırılmalı. |
| /var | Log dosyaları (/var/log/), geçici dosyalar, PID dosyaları. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Log analizleri için önemlidir. Özellikle son erişim veya değiştirme zamanları incelenmeli. |
| /home | Kullanıcı verileri ve kişisel yapılandırmalar. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Yetkisiz kullanıcıların dosyaları veya şüpheli yüklemeler araştırılmalı. |
| /tmp | Geçici dosyalar. Uygulama kurulumları, saldırılar için kullanılabilir. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Saldırı izleri aranmalı (örn. kötü amaçlı scriptler, exploit dosyaları). |
| /var/log | Log dosyalarının varsayılan konumu. Örn. /var/log/auth.log. | /var/log/messages, /var/log/audit/ | /var/log/ | /var/log/journal/ | Belirli zaman aralıklarında şüpheli aktiviteleri (ör. root erişimi, başarısız oturum açmalar) kontrol edin. |
| /bin, /sbin | Sistem araçları ve komutlar bulunur. Kullanıcı ve root işlemleri için. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Şüpheli yeni dosyalar veya değiştirilmiş binary’ler (lsattr, md5sum ile) incelenmeli. |
| /dev | Donanım cihazlarının dosya sistemine bağlandığı dizin. | Aynı yapı. | Aynı yapı. | Aynı yapı. | mount komutu ile bağlantıları doğrulayın. Şüpheli veya bilinmeyen cihazlar araştırılmalı. |
| /lib, /lib64 | Çekirdek ve sistem kütüphaneleri. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Çekirdek modülleri incelenmeli. Değişiklik zamanları kontrol edilmeli. |
| /usr | Kullanıcı uygulamaları ve dosyaları. | Aynı yapı. | Aynı yapı. | Aynı yapı. | Varsayılan binary ve yapılandırma dosyalarındaki anormallikler araştırılmalı. |
- “Linux işletim sisteminin büyük bir kısmı /usr altında kurulur, /bin ve /lib genellikle sırasıyla /usr/bin ve /usr/lib’e bağlantılar (linkler) olarak bulunur. Sistem yöneticisi aktif olarak sistemi güncellemiyor veya yamanıyorsa, /usr altındaki dosyalar değişmemelidir. “Çalıştırılabilir dosyalar genellikle /usr altında bulunur /usr/bin, /usr/sbin, /usr/libexec, vb. İstisnalar arasında /opt altında bulunan üçüncü parti yazılımlar yer alır. “Standart Linux programları, /usr altında belirli dizinlere kurulur– örneğin /usr/bin, /usr/sbin, /usr/libexec vb. Üçüncü parti yazılımlar genellikle /usr/local altında kurulur, bu nedenle /usr/local/bin, /usr/local/sbin gibi dizinlerle karşılaşırsınız. Bazı durumlarda, üçüncü parti yazılımlar /opt altında kurulur (örneğin, /opt/SAP/bin vb.). Başka yollarla kurulan ve çalışan programları gördüğünüzde, şüpheci olunmalıdır. Bu özellikle /tmp, /var/tmp ve /dev/shm gibi dünyaya açık yazılabilir dizinlerden çalışan programlar için geçerlidir. Kullanıcıların kendi programlarını /home/<user> dizinlerinden çalıştırmalarının zaman zaman geçerli bir kullanımı olabilir, ancak /tmp’den çalışan şeylerin neredeyse hiçbir zaman geçerli bir nedeni yoktur. Genellikle /tmp’den çalışan programlar, yönetici ayrıcalıkları elde edememiş exploit’lerdir.
- /etc, sistemin ana yapılandırma dizinidir. Sistemdeki neredeyse her servis, kendi yapılandırma dosyalarına ve/veya dizinlerine /etc altında sahiptir. Tipik olarak, /etc altındaki dosyaları değiştirmek için yönetici erişimine ihtiyacınız vardır. /etc ayrıca kullanıcı hesapları ve ayrıcalıklarıyla ilgili yapılandırma dosyalarının bulunduğu yerdir.
- İşletim sistemi, sistem çalışırken oluşturulan verileri yazmak için bir yere ihtiyaç duyar bunu /var dizini sağlar. Örneğin, sistem log dosyaları genellikle /var/log altında yer alır. /var altında, belirli sistem işlemleri için başka dizinler de bulunmaktadır.
- Kullanıcılar kendi kişisel dizinlerine sahiptir, genellikle /home altında bulunur. İstisna, yönetici kullanıcısı olan “root” kullanıcısıdır. Bu kullanıcının ana dizini /root’tur. Her dizin genellikle yalnızca o dizinin belirli kullanıcı sahibi tarafından erişilebilir.”
- /dev/shm, yalnızca bellekte var olan bir dizindir– sistem kapatıldığında veya yeniden başlatıldığında, /dev/shm içeriği kaybolur. Bu, /dev/shm’yi saldırganların dosyalarını kolayca geri alınamayacak şekilde sahnelemek için uygun bir yer yapar. Sistemi kapatmadan önce /dev/shm içeriğini kontrol etmek önemlidir. “/dev/shm altındaki yol isimleri kesinlikle beklenmedik. Her dizinde bulunan normal ‘..’ bağlantısının yanına gizlenmeye çalışmak için ‘.. ‘ (nokta-nokta-boşluk) adında bir dizin kullanıldığına dikkat edin.
- /var/log: Kritik sistem günlükleri burada bulunur. Bu konuda daha fazla şey söyleyeceğiz kursun ilerleyen bölümlerinde.
- Pek çok Linux sisteminde, /run, yeniden başlatmalar arasında kalıcı olması gerekmeyen verileri depolamak için kullanılan bir bellek içi dosya sistemidir.
- “Son olarak, sistemdeki herkesin yazabileceği geçici dizinler vardır. Yönetici ayrıcalıkları elde edemeyen birçok saldırgan, bu geçici dizinlerde dosyalarda işlem yapar. Sınıf geçici dizin yolları /tmp ve /var/tmp‘dir. Kullanıcı tarafından yazılabilir dizinlerdeki programlara şüpheyle yaklaşın /tmp, /var/tmp, /dev/shm
Linux Dosya Sisteminde Zaman Damgası
Zaman damgaları, belirli bir eylemin ne zaman gerçekleştiğini belirten dosyalar veya olaylarla ilişkili ek meta veri parçalarıdır. Zaman damgaları, olay yanıtlama ve adli faaliyetlerde dosyaların ve dizinlerin oluşturulmasını, değiştirilmesini ve erişim zamanlarını izlemek için en temel unsurlardan biridir. Bu zaman damgaları, olayların sırası ve bir sistemde gerçekleştirilen eylemler hakkında temel ipuçları sağladıkları ve bir zaman çizelgesi oluşturmaya yardımcı oldukları için adli soruşturmalarda paha biçilmezdir.
Zaman damgaları, dört standart dosya zaman damgası türü kullanılarak oluşturulur:
- Son değişiklik zamanı (mtime) – Dosyanın içeriği son kez ne zaman değiştirildi? Örneğin, yeni bir dosya oluşturulduğunda veya bir dosyayı düzenleyerek değişiklik yapıldığında.
- Son erişim zamanı (atime) – Bir dosyanın içeriği son kez ne zaman okundu? Eğer dosya bir program veya script ise, atime genellikle programın son kez çalıştırıldığı zamanı temsil eder. Ancak, Linux sistemlerinde genellikle dosya her okunduğunda atime güncellenmez, bu konuya aşağıda değineceğiz.
- Meta veri değişiklik zamanı (ctime) – Dosyaya ait meta verilerin son kez ne zaman güncellendiği. Örneğin, dosya sahibi değiştirilmişse (chown) veya dosya izinleri (chmod) değiştirilmişse.
- Oluşum zamanı (btime) – Dosyanın oluşturulma tarihi. Oluşum zamanı genellikle “btime” (doğum tarihi) olarak adlandırılır, bu da meta veri değişiklik zamanı (ctime) ile karışmaması için yapılır. Ancak, bazı Linux komutları (örneğin debugfs) bu zaman damgasını “crtime” olarak ifade eder. btime, yalnızca EXT dosya sistemlerine EXT4 ile eklenmiştir (aynı zamanda modern XFS sürümlerinde de bulunur).
Dosya sistemi geliştiricileri, her dosya erişiminde atime’ı güncellemenin verimsiz olduğunu fark ettiler, çünkü bu, dosya yalnızca okunuyor (veya tekrar tekrar çalıştırılıyor) olsa bile dosya sistemine güncellemeyi yazmak anlamına gelir. Windows NTFS, Windows 7’de atime güncellemeyi durdurdu.
Linux sistemleri genellikle “relatime” olarak bilinen bir dosya sistemi seçeneği kullanır. Bu seçenekle, atime yalnızca şu durumlarda güncellenir:
- atime, mtime veya ctime’dan eski ise (bu nedenle “göreli atime güncellemesi” veya “relatime”) bu, dosyanın son güncellendiğinden beri erişilip erişilmediğini bilmek isteyen mail okuyucuları gibi programlar için tasarlanmıştır.
- atime, son güncellenmesinden bu yana 24 saatten fazla bir süre geçmişse.
Bu nedenle, Linux’ta atime’lar yalnızca ara sıra güncellenir, ancak yine de bazen faydalıdır. Örneğin, nadiren kullanılan programlar veya saldırgan tarafından bırakılan zararlı yazılımlarda atime güncellemeleri, zaman çizelgenizdeki çalıştırma izlerini gösterebilir. atime, genellikle bir program ilk kez çalıştırıldığında, belirli bir 24 saatlik dilimde güncellenir.
Zaman çizelgelerinin sınırlamalarını anlamak önemlidir.

FOR 577
STANDARD TIMESTAMPS
- Last modified time (M) – Son değişiklik zamanı-
Dosya içeriği son kez ne zaman değiştirildi?
- Last access time (A)
Dosya son kez ne zaman görüntülendi/çalıştırıldı?*
- Metadata change time (C)
Son inode güncellemesi (chown, chmod, vb.)
- Creation time (B)
Date/time of file creation (EXT4 only)



