> For the complete documentation index, see [llms.txt](https://docs.cetinboran.com.tr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cetinboran.com.tr/platforms/linux/onemli-dosyalar/shadow.md).

# /etc/shadow

## Dosya Yapısı

`/etc/shadow` dosyası `/etc/passwd` dosyasının içerisindeki kullanıcıların şifrelerinin `hash` değerlerini saklar. Bu dosya üzerinde `root` yetkisi olmadan hiç bir işlem yapılamaz.

<figure><img src="/files/zJkdyXlKvHfMIDVBXFRS" alt=""><figcaption></figcaption></figure>

## Alanlar

`passwd` dosyasındaki gibi her alan `:` ile ayrılır ve toplam 6 tane alan içermektedir. Şimdi yukarıdaki örneği kullanarak bu alanları açıklayalım:

1. **Kullanıcı Adı:** Buradaki bilginin kimin olduğunu belirtir.
2. **Şifre:** Bu kısım ise kullanıcının şifrelenmiş `hash` değerini tutar. Genelikle şifre formatı `$id$salt$hashed` şeklinde tutulur. Buradaki `$id` değeri aslında şifreden hash oluşturulurken kullanılan hash'i bize söylemektedir. Örnek olarak `$1$` değeri `md5` hash'ine denk gelmektedir.
3. **Şifre Değiştirme Zamanı:** Son parola değiştirme tarihi, 1 Ocak 1970'ten (Unix zamanı) itibaren geçen gün sayısı olarak ifade edilir. 0 değeri özel bir anlama sahiptir; kullanıcının sisteme bir sonraki girişinde parolasını değiştirmesi gerekir. Boş alan, parola eskime özelliklerinin devre dışı bırakıldığını gösterir.
4. **Minimum:** Şifre değişiklikleri arasında gerekli olan minimum gün sayısı, yani kullanıcının şifresini tekrar değiştirmesine izin verilmeden önce kalan gün sayısı. Boş bir alan ve 0 değeri, minimum şifre yaşı olmadığını gösterir.
5. **Maksimum:** Şifrenin geçerli olduğu maksimum gün sayısı, bundan sonra kullanıcının şifresini tekrar değiştirmesi zorunlu hale gelir.
6. **Uyarı:** Şifrenin süresinin dolmasına kaç gün kala kullanıcının şifresini değiştirmesi gerektiği konusunda uyarılacağı sayısı.
7. **Etkin Değil:** Şifrenin süresi dolduktan sonra hesabın devre dışı bırakılacağı gün sayısı.
