> 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/passwd.md).

# /etc/passwd

## Giriş

Bu yazımda linux'da olan önemli dosyların bir kaç tanesinden bahsedeceğim. Birden fazla önemli dosya var ancak çözdüğüm CTF'lerde en çok denk geldiğim ve araştırıp mantığını öğrendiklerimi burada yazmak istedim.

## Dosya Yapısı

`/etc/passwd` dosyası sistem içerisindeki kullanıcılarla ilgili önemli bilgileri tutuyor. `root` kullanıcı bu dosyanın sahibi olduğu için düzenlemek için `root` yetkilerine ihtiyacımız var.

Bu dosya her satırda bir kayıt saklar, yani her satır aslında sistem içerisindeki bir kullanıcı bilgisi içerir. Buradaki satır içerisinde 7 önemli alan var ve her alan `:` ile ayrılmaktadır.

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

## Alanlar

Yukarıdaki resimdeki bilgileri tek tek açıklayalım:

1. **Kullanıcı Adı:** Bu alan, sisteme giriş yaparken kullanılan kullanıcı adlarını saklar.
2. **Şifre:** Bu alan, kullanıcının şifresini saklar. x karakteri, şifrenin /etc/shadow dosyasında şifrelenmiş biçimde saklandığını gösterir. Bu alanı güncellemek için passwd komutunu kullanabiliriz.
3. **User ID (UID):** Kullanıcı tanımlayıcısı, işletim sistemi tarafından kullanıcılara referans vermek için her kullanıcıya atanan sayıdır. 0 UID, root kullanıcısı için ayrılmıştır. 1-99 UID'ler diğer önceden tanımlanmış hesaplar için ayrılmıştır. 100-999 ise sistem tarafından yönetimsel ve sistem hesapları/grupları için ayrılmıştır.
4. **Group ID (GID):** Grup tanımlayıcısı, kullanıcıların birincil grubunu gösteren sayıdır. Çoğu zaman UID ile aynıdır.
5. **User ID Info (GECOS):** Bu bir yorum alanıdır. Bu alan, kullanıcının telefon numarası, adresi veya tam adı gibi bilgileri içerir. Bu alan, kullanıcı hakkında bilgi almak için finger komutu tarafından kullanılır.
6. **Home Directory:** Bu alan, kullanıcının ana dizininin mutlak yolunu içerir. Varsayılan olarak, kullanıcılar /home dizini altında oluşturulur. Bu dosya boşsa, o kullanıcının ana dizini / olur.
7. **Login Shell:** Bu alan, kullanıcının kabuğunun mutlak yolunu saklar. Bu kabuk, kullanıcı sisteme giriş yaptığında başlatılır.
