# Temel Yetki Yönetimi

## Yetkiler

Tüm Linux işletim sisteminde, neredeyse hiçbir kısıtlaması olmadan tüm işlemleri gerçekleştirme yetkisine sahip olan root kullanıcısı bulunmaktadır. Bazı dağıtımlarda kurulum sırasında bu kullanıcı için parola oluşturulurken bazı dağıtımlarda oluşturulmaz.

```
id root
```

root dışında oluşturulan normal kullanıcıların yalnızca kendi ev dizinlerinde ve /tmp dizininde değişiklik yapma yetkisi bulunmaktadır. Bunun dışındaki sistem dosyalarında işlem yapılmak isteniyorsa yetki yükseltme işlemi gerekmektedir.&#x20;

### sudo

![](/files/-MismKPPYLgLODOogwo7)

Son kullanıcı sudo komutu ile kendisinden sonra gelen komutların root kullanıcısı tarafından yapılmasını sağlar. Tabiki bu işlem eğer yetkisi varsa yapılır.

```
sudo <komut>
```

### sudo Grubu

root kullanıcısı dışında sistemde neredeyse hiçbir kısıtlaması olmadan tüm işlemleri gerçekleştirme yetkisine sahip gruba **sudo** grubu denir. Son kullanıcı bu gruba dahil ise sudo komutu ile yetkili işlemler yapabilir.

```
groups kullanici
kullanici : kullanici adm cdrom sudo dip plugdev lpadmin lxd sambashare wireshar
```

### sudoers

Peki root kullanıcısının ya da sudo grubunun hangi işlemleri yapabileceğini sistem nasıl anlar. Kullanıcı ve grup yetkileri /etc/sudoers dosyasında tanımlanır.

```
cat /etc/sudoers

root	ALL=(ALL:ALL) ALL
%sudo	ALL=(ALL:ALL) ALL
```

* `root` ALL=(ALL:ALL) ALL\
  İlk sütun hangi kullanıcı ya da grubu etkileyeceğini ifade eder
* root `ALL`=(ALL:ALL) ALL\
  İkinci sutün hangi makine ve terminaller üzerinde uygulanacağını ifade eder.
* root ALL=(`ALL`:ALL) ALL\
  Üçüncü sütun, komutların tüm kullanıcılar olarak çalıştırabileceğini gösterir.
* root ALL=(ALL:`ALL`) ALL\
  Dördüncü sütun, komutların tüm gruplar olarak çalıştırabileceğini gösterir.
* root ALL=(ALL:ALL) `ALL` \
  Son olarak son sütun hangi komutlara yetki verildiğini ifade eder

Dosyaların aynı anda bir kişi tarafından düzenlendiğinden emin olmak için sudoers dosyası visodu komutu ile düzenlenir

```
visudo
```

## Dozya ve Dizin İzinleri

GNU/Linux sistemler, hızlı ve pratik olmasının yanında güvenlik açısından **kale gibi olması sebebi ile de** sunucularda sıklıkla kullanılırlar. Bunun sebebi de teker teker her dosyanın ve dizinin sahip olduğu yetki sistemidir.

Her dosya veya dizin 3 ayrı alan için yetkilendirmeye sahip olabilir. Bu yetkilendirmeler,

```
u: Mevcut kullanıcı (user)
g: Grup (group)
o: Diğerleri (other)
a: Herkes (all)
```

Aynı zamanda yukarıda belirtilenlerden her biri için ayrı ayrı okuma, yazma ve çalıştırma yetkisi bulunmaktadır.

```
r: Okuma izni
w: Yazma izni
x: Çalıştırma izni
```

Bu iki bilgiyi birbiri ile birleştirdiğimizde, sıklıkla **ls -la** komut çıktısında gördüğümüz her dosyanın başında yer alan izinleri anlamlandırabiliriz.

```
total 24
drwxr-xr-x 3 server server 4096 Aug 26 15:52 .
drwxr-xr-x 3 root   root   4096 Jun 26 18:39 ..
-rw-r--r-- 1 server server  220 Jun 26 18:39 .bash_logout
-rw-r--r-- 1 server server 3526 Jun 26 18:39 .bashrc
-rw-r--r-- 1 server server  807 Jun 26 18:39 .profile
-rw-r--r-- 1 root   root      0 Aug 26 15:52 testDosya
drwxr-xr-x 2 root   root   4096 Aug 26 15:52 yeniDizin
```

Sol tarafta yer alan 10 karakterden, ilki dosyanın türünü belirtir. Örneğin,

```
- : Dosya
d : Dizin
l : Link
```

anlamına gelmektedir.

Sonraki dokuz hane ise izinleri temsil eder. İlk 3 hane dosya sahibinin izinleri, sonraki 3 hane dosya grubunun izinleri, en son hane ise sistemdeki diğer kullanıcının izinlerini göstermektedir.

### chmod ile Yetki Yönetimi

Dosyalar ve dizinlerin okuma yazma, ve çalıştırma için uygun gruplara uygun izinlere ihtiyacı olduğundan bahsettik. Şimdi bu izinlerin nasıl verildiğinden bahsedelim.

Eğer bir betiğe dosya sahibi için çalıştırma yetkisi vermek istiyorsak,

```
chmod u+x pythonScript.py
chmod +x bashScript.sh
```

komutlarını kullanabiliriz. Ya da dosyanın herkes için tüm izinlerini silip sadece okuma izni vermek istiyorsak,

```
chmod a=r /tmp/duyuruDosyasi.txt
```

komutunu kullanmamız gerekir. Dosyadan yetki silmek için ise,

```
chmod g-wx /tmp/izinler.txt
```

komutu kullanılmalıdır.

### İkili Dosya İzinleri

Dosya izinleri yukarıdaki gibi kullanıcı, grup ve diğer kullanıcılar için ayrı ayrı verilebilse de bazı durumlarda tercih edilmemektedir. Bunun yerine Eğer bir dosyayı herkes tarafından okunabilir yapmak istiyorsak, Binary Dosya İzinleri diye de bilinen İkili Dosya İzinleri kullanılmaktadır.

![](/files/-MisrZVCEUOI8KbugX-f)

Bu sistemde izinler 3erli olarak ayrılır. Ayrılan her bir grup için sağdan sola 2 üzeri 0, 2 üzeri 1 ve 2 üzeri 2 olarak numaralandılır. Eğer izinlerin hepsi açıksa, yani rwx durumunda ise tüm bu rakamlar toplanır ve o gruba 7 değeri atanır. Eğer bu izinlerden biri bile yoksa, onun yerine 0 yazılarak toplanır.

Örneğin izinleri,

```
rwxr---wx
```

olan bir dosya için,

```
rwx r-x -wx
 7   5   3
```

753 iznine sahip denilebilir. chmod ile binary izinleri de,

```
chmod 755 /tmp/izinler.txt
```

şeklinde kullanılabilir.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.liman.dev/sistem-yonetimi/temel-sistem-yonetimi/temel-yetki-yoenetimi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
