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

# /etc/sudoers

## Dosyanın Amacı

`sudo` komutunun davranışları `/etc/sudoers` dosyası ile kontrol ediliyor. Bu dosya, **hangi komutların hangi kullanıcılar tarafından ve hangi koşullar altında** çalıştırılabileceğini tanımlar.

Bu dosyayı kullanarak bir kullanıcıya **sudo** yetkisi verebiliriz, bir servis kullanıcısına belirli bir komutu çalıştırması **sudo** yetkisi ile çalıştırması için izin verebiliriz gibi gibi. Dolayısıyla eğer bu dosya yetkileri doğru ayarlanmamışsa büyük bir zafiyet ortaya çıkmaktadır.

## Sudo Komutu Bu Dosyayı Nasıl Kullanır?

Sudo komutu aşağıdaki görevleri yerine getirir ve kullanıcılara root kullanıcısının yetkilerine erişim izni verir:

1. `/etc/sudoers` dosysını okur ve komutu çağıran kullanıcıyı arar.
2. Ardından kullanıcıdan parola istenir; bu, NOPASSWD bayrağı kullanılarak atlanabilir.
3. Daha sonra, hedefi kullanıcıya değiştiren bir alt işlem `setuid()` oluşturulur.
4. Artık verilen tüm komutlar alt işlemde yürütülecektir.

## Örnekler

<pre><code><strong># 1. Belirli bir komutu çalıştırabilir
</strong>hacker ALL=(ALL) /usr/bin/systemctl restart nginx

# 2. Birkaç belirli komut
hacker ALL=(ALL) /usr/systemctl restart nginx, /usr/systemctl status nginx

# 3. Belirli komutları şifresiz çalıştırabilir
hacker ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

# 4. Tüm sudo komutlarını şifresiz çalıştırabilir
hacker ALL=(ALL) NOPASSWD: ALL

# 5. Tüm sudo komutlarına erişebilir ama parola sorulur
hacker ALL=(ALL) ALL

# 6. Belirli bir kullanıcı adına çalıştırabilir
hacker ALL=(root) /usr/bin/systemctl restart nginx

# 7. Birden fazla kullanıcı adına çalıştırabilir
hacker ALL=(root, www-data) /usr/bin/systemctl restart nginx
</code></pre>
