---
title: 'Kullanıcılar ve Gruplar'
source: 'https://academia.sh/tr/kurslar/linuxa-giris/kullanicilar-ve-gruplar'
course: "Linux'a Giriş"
language: tr
updated: '2026-08-17T18:09:57+00:00'
license: 'CC BY-SA 4.0'
---

# Kullanıcılar ve Gruplar

Kimliğin çekirdek düzeyinde sayı olarak tutulması, hesap ve grup dosyalarının alan yapısı, birincil ile ek grup ayrımı ve ad çözümlemesi.

Önceki derste uzak makinedeki dosyalar `yedek` hesabına, yerel dosyalar başka bir hesaba ait
çıktı. Listeleme çıktılarında sahip ve grup sütunları en baştan beri görünüyordu ama ne
oldukları açıklanmadı.

Bu ders o boşluğu kapatır. Kimliğin sistemde ne olarak saklandığı, sonraki dersteki izin
denetiminin girdisidir: çekirdek "bu kullanıcı bu dosyayı okuyabilir mi" sorusunu yanıtlarken
tam olarak bu değerleri karşılaştırır.

## Kimlik Bir Sayıdır

Çekirdek kullanıcı adı bilmez. Her sürecin ilişkilendirildiği şey iki tam sayıdır:
**kullanıcı kimliği (UID)** ve **grup kimliği (GID)**. Adlar yalnızca insanlar içindir ve
kullanıcı alanındaki programlarca çözülür.

```
$ id
uid=1001(ogrenci) gid=1001(ogrenci) groups=1001(ogrenci),2001(proje)
```

Çıktı üç bilgi verir: kullanıcı kimliği, birincil grup kimliği ve üyesi olunan tüm gruplar.
Parantez içindeki adlar sayıların çözülmüş karşılıklarıdır; asıl değer sayıdır.

Alanlar ayrı ayrı da istenebilir:

```
$ id -u
1001
$ id -g
1001
$ id -un
ogrenci
```

`-n` eki, sayı yerine adı verir. `whoami` komutu `id -un` ile aynı sonucu üretir.

Ayrımın pratik sonucu şudur: bir dosyanın sahibi bir ad değil bir sayıdır. Kullanıcı
silinip aynı numarayla yeni bir hesap açılırsa, eski dosyalar yeni hesaba ait görünür. Aynı
biçimde, arşivden çıkarılan dosyaların sahipliği hedef sistemde farklı bir kişiye denk
gelebilir — arşiv dosyalarında saklanan da sayıdır.

**Kök kullanıcı (root)** UID değeri sıfır olan hesaptır. Ayrıcalığı adından değil bu
sayıdan gelir; çekirdek birçok denetimi UID sıfır için atlar.

## Hesap Dosyası

Hesap kayıtları bir metin dosyasında tutulur. Her satır bir hesaptır ve alanlar iki nokta
üst üste ile ayrılır:

```
$ grep -E '^(root|ogrenci|yedek):' /etc/passwd
root:x:0:0:root:/root:/bin/bash
ogrenci:x:1001:1001::/home/ogrenci:/bin/bash
yedek:x:1002:1002::/home/yedek:/bin/bash
```

Yedi alan sırayla şunlardır:

| Sıra | Alan | Örnekteki değer |
|---|---|---|
| 1 | Kullanıcı adı | `ogrenci` |
| 2 | Parola yeri | `x` |
| 3 | Kullanıcı kimliği | `1001` |
| 4 | Birincil grup kimliği | `1001` |
| 5 | Açıklama alanı | boş |
| 6 | Ev dizini | `/home/ogrenci` |
| 7 | Oturum açma kabuğu | `/bin/bash` |

Bu dosyanın biçimi, yardım kaynakları dersinde kılavuzun beşinci bölümünden okunmuştu;
bölüm 5'in ne işe yaradığının somut örneği budur.

İkinci alandaki `x` bir parola değildir. Parola karmaları, yalnızca kök kullanıcının
okuyabildiği ayrı bir dosyada tutulur:

```
$ ls -l /etc/passwd /etc/shadow
-rw-r--r-- 1 root root   1236 Jul 26 19:14 /etc/passwd
-rw-r----- 1 root shadow  668 Jul 26 19:14 /etc/shadow
$ cat /etc/shadow
cat: /etc/shadow: Permission denied
```

Ayrımın nedeni izin sütunlarında görünür: hesap dosyası herkes tarafından okunabilir
(`rw-r--r--`), çünkü kullanıcı adı ve kimlik eşlemesine her program erişmek zorundadır.
Parola karmaları aynı erişilebilirlikte olsaydı, herkes karmaları alıp çevrimdışı deneme
yapabilirdi. Karmalar bu yüzden ayrılmıştır ve yalnızca sahibi ile `shadow` grubu tarafından
okunabilir.

Sistem hesapları ile insan hesapları kimlik aralıklarıyla ayrılır. Düşük numaralar
servisler için ayrılmıştır; insan hesapları belirli bir eşiğin üzerinden başlar. Eşiğin
değeri sistem yapılandırmasına bağlıdır, ama ayrımın kendisi geneldir ve yeni hesap açan
araçlar numarayı bu aralıktan seçer.

Yedinci alandaki kabuk, oturum açıldığında çalıştırılacak programdır. Oturum açması
istenmeyen servis hesaplarında buraya, çalıştırıldığında hemen sonlanan bir program yazılır;
bu, hesabı devre dışı bırakmanın standart yoludur.

## Hesabın Yaşam Döngüsü

Hesap dosyaları elle düzenlenmez; hesap yönetimi komutları bu dosyaları tutarlı biçimde
günceller. Yeni bir hesap açan komut tek bir dosyaya değil üçüne birden yazar: hesap
dosyasına bir satır, gölge dosyasına bir parola kaydı, grup dosyasına birincil grup. Ayrıca
ev dizinini oluşturur ve içine iskelet dizininden başlangıç yapılandırma dosyalarını
kopyalar.

Ek grup üyeliği sonradan verilebilir. Burada sık karşılaşılan bir yanılgı vardır: üyelik
eklendiği anda çalışan oturuma yansımaz. Süreçlerin grup listesi oturum açılırken belirlenir
ve süreç boyunca sabit kalır; yeni üyelik ancak yeni bir oturumda geçerli olur.

Hesabın kapatılması ile silinmesi ayrı işlerdir. **Kapatma**, parolayı geçersiz kılar veya
oturum kabuğunu sonlandıran bir programla değiştirir; kimlik ve dosya sahipliği yerinde
kalır. **Silme**, kaydı dosyalardan çıkarır — ama kullanıcının sistemde bıraktığı dosyaları
temizlemez.

Sonuç, kimliğin bir sayı olmasının doğrudan görünür hâlidir:

```
$ ls -l /veri/rapor.txt
-rw-r--r-- 1 ogrenci ogrenci 0 Jul 26 19:54 /veri/rapor.txt
$ sudo userdel ogrenci
$ ls -l /veri/rapor.txt
-rw-r--r-- 1 1001 1001 0 Jul 26 19:54 /veri/rapor.txt
```

Sahip sütununda ad yerine sayı görünür: dosyanın sahipliği değişmemiştir, yalnızca sayıyı
ada çevirecek kayıt kalmamıştır. Bu tür dosyalar, aynı numara başka bir hesaba verildiğinde
sessizce onun olur; hesap silinirken dosyalarının da devredilmesi ya da temizlenmesi
gereken şey budur.

## Grup Dosyası

Gruplar ayrı bir dosyada, dört alanla tutulur:

```
$ grep -E '^(root|ogrenci|yedek|proje):' /etc/group
root:x:0:
ogrenci:x:1001:
proje:x:2001:ogrenci
yedek:x:1002:
```

Alanlar sırayla grup adı, parola yeri, grup kimliği ve **ek üyelerin** listesidir.

Son alan dikkat ister. `ogrenci` grubunun üye listesi boştur, ama `ogrenci` kullanıcısı bu
grubun üyesidir. Çelişki değildir: üyelik iki ayrı yerden gelir.

**Birincil grup**, hesap dosyasının dördüncü alanındadır. Kullanıcının oluşturduğu yeni
dosyalar varsayılan olarak bu grubu alır.

**Ek gruplar**, grup dosyasının üye listelerinden gelir. `proje:x:2001:ogrenci` satırı
`ogrenci` kullanıcısını `proje` grubuna ek üye yapar.

Toplam üyelik iki kaynağın birleşimidir:

```
$ groups
ogrenci proje
```

Her kullanıcıya kendi adıyla bir birincil grup açmak yaygın bir yapılandırmadır. Nedeni izin
bitleri dersinde görülecektir: birincil grup paylaşılan bir grup olsaydı, kullanıcının
oluşturduğu her dosya varsayılan olarak o gruba açık olurdu.

Bu kursun proje ağacı için ayrı bir `proje` grubu tanımlanmıştır. Grup, sahiplik ve özel
izin bitleri derslerinde ağacın paylaşıma açılmasında kullanılacaktır.

## Ad Çözümleme

Kimlik bilgisi her zaman yerel dosyalardan gelmez. Kuruluş ölçeğinde hesaplar ağ üzerindeki
bir dizin hizmetinde tutulabilir. Bu nedenle programlar dosyaları doğrudan okumak yerine bir
çözümleme katmanı çağırır.

```
$ getent passwd ogrenci
ogrenci:x:1001:1001::/home/ogrenci:/bin/bash
$ getent group proje
proje:x:2001:ogrenci
```

`getent` komutu, sistemin yapılandırılmış tüm kaynaklarına sorar ve yanıtı standart biçimde
verir. Kayıt yerel dosyada değil ağdaki bir kaynakta olsa da çıktı aynı biçimdedir; komutu
çağıran programın kaynağın nerede olduğunu bilmesi gerekmez.

Uygulamada bunun anlamı şudur: bir hesabın var olup olmadığı `grep` ile dosyada aranarak
değil, `getent` ile sorularak sınanır. Dosyada bulunmaması hesabın olmadığını göstermez.

## Hesap Yönetimi Komutları

Hesap ve grup oluşturma, değiştirme ve silme komutları kök yetkisi gerektirir ve kılavuzun
sekizinci bölümünde belgelenir. Bu kursta hesap açılmayacaktır; ilgili araç ailesi Sistem
Yönetimi kursunun konusudur.

Kök yetkisi gerektirmeyen tek yaygın işlem, kullanıcının kendi parolasını değiştirmesidir.
Bu işlemin nasıl mümkün olduğu ilginç bir sorudur: parola karmalarını tutan dosya sıradan
bir kullanıcı tarafından okunamaz bile, yazılması nasıl sağlanır?

```
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 72056 May 30  2024 /usr/bin/passwd
```

İzin dizesinde alışılmadık bir karakter var: sahip izinlerinin üçüncü konumunda `x` yerine
`s`. Bu, özel izin bitleri dersinin konusudur ve bu konunun sonunda yanıtlanacaktır.

## Özet

- Çekirdek kimliği sayı olarak tutar; adlar kullanıcı alanında çözülür ve dosya sahipliği
  sayıya bağlıdır.
- Kök kullanıcının ayrıcalığı adından değil, kullanıcı kimliğinin sıfır olmasından gelir.
- Hesap dosyası yedi alan taşır: ad, parola yeri, kullanıcı kimliği, birincil grup kimliği,
  açıklama, ev dizini ve oturum kabuğu.
- Parola karmaları, çevrimdışı deneme saldırılarını engellemek için yalnızca ayrıcalıklı
  okunabilen ayrı bir dosyadadır.
- Üyelik iki kaynaktan gelir: hesap dosyasındaki birincil grup ve grup dosyasındaki ek üye
  listeleri.
- Ad çözümleme yerel dosyalarla sınırlı değildir; sorgular çözümleme katmanı üzerinden
  yapılır.

## Sonraki Adım

Kimlik tanımlandığına göre, bu kimliğin bir dosyada ne yapabileceği sorulabilir. Sonraki ders
listeleme çıktısının ilk sütunundaki dokuz karakteri çözer: üç erişim türü, üç kullanıcı
sınıfı, sekizlik gösterim ve dizinlerde aynı bitlerin neden bambaşka anlamlar taşıdığı.
