Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

Linux Sistemlerinde Kullanıcı Yetkilendirmeleri: Kapsamlı Bir Rehber

Linux Sistemlerinde Kullanıcı Yetkilendirmelerinin Önemi

Linux, çok kullanıcılı bir işletim sistemidir ve bu yapının temel taşlarından biri, kullanıcı yetkilendirmeleri ve dosya izinleridir. Bu mekanizmalar, sistem kaynaklarına kimin ne şekilde erişebileceğini belirleyerek hem güvenliği hem de sistem bütünlüğünü sağlar. Yanlış yapılandırılmış yetkiler, ciddi güvenlik açıklarına veya sistem kararsızlıklarına yol açabilir. Bu kapsamlı rehberde, Linux'taki kullanıcı, grup ve diğer yetkilendirme modellerini, bunların nasıl yönetileceğini ve en iyi uygulamaları derinlemesine inceleyeceğiz. Amacımız, hem yeni başlayanların temel kavramları anlamasına yardımcı olmak hem de deneyimli kullanıcılar için detaylı referanslar sunmaktır.

Kullanıcılar ve Gruplar: Temel Yapı Taşları

Linux sistemlerinde her dosya ve dizinin bir sahibi (kullanıcı) ve bir ilişkilendirildiği grubu bulunur.
  • Kullanıcılar (Users): Sisteme giriş yapabilen ve belirli işlemleri gerçekleştirebilen bireysel hesaplardır. Her kullanıcının kendine ait bir ana dizini ve benzersiz bir kullanıcı kimliği (UID) bulunur. Örneğin, 'root' kullanıcısı sistemdeki en yüksek yetkiye sahip süper kullanıcıdır.
  • Gruplar (Groups): Bir veya daha fazla kullanıcıyı bir araya getiren koleksiyonlardır. Bir dosya veya dizine grup düzeyinde izinler verildiğinde, o grubun tüm üyeleri bu izinlere sahip olur. Bu, aynı izinlere sahip olması gereken kullanıcıları tek tek yönetmek yerine toplu olarak yönetmeyi kolaylaştırır. Her grubun benzersiz bir grup kimliği (GID) bulunur.

Dosya ve Dizin Yetkileri: rwx Modeli

Linux'ta dosya ve dizin izinleri, `r` (okuma), `w` (yazma) ve `x` (çalıştırma/yürütme) olmak üzere üç temel moddan oluşur. Bu izinler, üç farklı kategori için ayrı ayrı tanımlanır:
  • Sahip (Owner): Dosyayı veya dizini oluşturan veya `chown` komutuyla sahipliği verilen kullanıcı.
  • Grup (Group): Dosyanın veya dizinin ilişkilendirildiği grup.
  • Diğerleri (Others): Sahip veya grubun dışındaki tüm diğer sistem kullanıcıları.

`ls -l` komutunun çıktısı bu izinleri detaylı olarak gösterir. Örneğin:
Kod:
-rwxr-xr-- 1 user group 4096 Jan 1 10:00 myfile.txt

Bu örnekte:
* İlk karakter (`-`): Dosya türünü belirtir (dosya için `-`, dizin için `d`, sembolik link için `l` vb.).
* Sonraki dokuz karakter (`rwxr-xr--`): Üçerli gruplar halinde sahip, grup ve diğerleri için izinleri gösterir.
* `rwx`: Sahip için okuma, yazma, çalıştırma izinleri.
* `r-x`: Grup için okuma, çalıştırma (yazma yok) izinleri.
* `r--`: Diğerleri için sadece okuma (yazma ve çalıştırma yok) izinleri.

Yetki Değişiklikleri: chmod Komutu

`chmod` komutu, dosya ve dizin izinlerini değiştirmek için kullanılır. İki ana yöntemle kullanılabilir: sembolik mod ve sayısal (oktal) mod.

Sembolik Mod (Symbolic Mode): İzinleri harflerle belirtiriz (`u`=user, `g`=group, `o`=others, `a`=all). İşlemler `+` (ekle), `-` (çıkar), `=` (tam olarak ayarla) ile yapılır.

Örnekler:
Kod:
chmod u+x myfile.sh      # Sahibe çalıştırma izni ekle
chmod g-w myfile.txt     # Gruptan yazma iznini kaldır
chmod o=r myfile.data    # Diğerlerine sadece okuma izni ver (tüm diğerlerini sıfırla ve r'yi ata)
chmod ug+rw,o-rwx mydir/ # Sahibe ve gruba okuma/yazma, diğerlerinden tüm izinleri kaldır

Sayısal Mod (Octal Mode): Her izin (r, w, x) bir sayısal değere sahiptir: `r=4`, `w=2`, `x=1`. Bu değerlerin toplamı izin setini oluşturur. Üç rakamlı bir sayı (örneğin 755), sırasıyla sahip, grup ve diğerleri için izinleri temsil eder.

Değerler:
* Okuma (r): 4
* Yazma (w): 2
* Çalıştırma (x): 1
* Hiçbir izin: 0

Örnekler:
* `7 (rwx)` = 4 (r) + 2 (w) + 1 (x)
* `6 (rw-)` = 4 (r) + 2 (w) + 0 (x)
* `5 (r-x)` = 4 (r) + 0 (w) + 1 (x)
* `4 (r--)` = 4 (r) + 0 (w) + 0 (x)

Sayısal mod örnekleri:
Kod:
chmod 755 script.sh      # Sahip: rwx (7), Grup: r-x (5), Diğerleri: r-x (5)
chmod 644 document.txt   # Sahip: rw- (6), Grup: r-- (4), Diğerleri: r-- (4)
chmod 700 private_dir/   # Sadece sahip erişebilir

Dizinler için `x` (çalıştırma) izni, dizine girme (cd) ve içeriğini listeleme (`ls`) yeteneğini ifade eder. Dizin üzerinde `r` izni olmadan `x` izni vermek, içeriği göremeseniz bile dosya adını biliyorsanız erişmenizi sağlayabilir.

Sahiplik Değişiklikleri: chown ve chgrp Komutları

chown (change owner): Bir dosya veya dizinin sahibini değiştirmek için kullanılır. Genellikle `root` yetkisi gerektirir.

Örnek:
Kod:
chown yeni_kullanici myfile.txt       # myfile.txt'nin sahibini yeni_kullanici olarak değiştir
chown -R yeni_kullanici:yeni_grup mydir/ # mydir ve altındaki tüm dosya/dizinlerin sahibini ve grubunu değiştir

chgrp (change group): Bir dosya veya dizinin grubunu değiştirmek için kullanılır.
Örnek:
Kod:
chgrp yeni_grup myfile.txt           # myfile.txt'nin grubunu yeni_grup olarak değiştir
`chown` komutu aynı zamanda hem sahip hem de grup değişikliği için de kullanılabilir (`kullanici:grup` formatında).

Özel İzinler (Special Permissions)

Linux'ta standart rwx izinlerine ek olarak, dosya ve dizinler üzerinde davranışları etkileyen üç özel izin daha bulunur. Bunlar, yetkilendirme modeline derinleşim katmak için tasarlanmıştır.

Set User ID (SUID): Normalde bir programı çalıştırdığınızda, program sizin yetkilerinizle çalışır. Ancak bir çalıştırılabilir dosya üzerinde SUID biti ayarlanmışsa, programı çalıştıran kullanıcının yetkileri yerine, dosyanın sahibinin yetkileriyle çalışır. Bu, özellikle `passwd` gibi komutlar için önemlidir. `passwd` komutu, kullanıcının kendi şifresini değiştirmesine izin verir ancak `/etc/shadow` dosyasını (şifrelerin saklandığı yer) sadece `root` okuyabilir. `passwd` komutu SUID biti sayesinde `root` yetkileriyle çalışır ve bu dosyaya erişebilir.
Sayısal modda 4 ile temsil edilir. Örneğin:
Kod:
chmod 4755 executable_file

Set Group ID (SGID):
* Dosyalarda: Bir çalıştırılabilir dosya üzerinde SGID biti ayarlandığında, programı çalıştıran kullanıcının birincil grubunun yetkileri yerine, dosyanın grubunun yetkileriyle çalışır. Daha az yaygın olsa da, belirli uygulamalarda özel grup ayrıcalıklarını geçici olarak sağlamak için kullanılabilir.
* Dizinlerde: SGID biti bir dizinde ayarlandığında, o dizinde oluşturulan yeni dosya ve alt dizinler, dizinin grubunu miras alır. Bu, belirli bir projede çalışan birden fazla kullanıcının, oluşturdukları tüm dosyaların otomatik olarak aynı grup sahipliğine sahip olmasını sağlamak için çok kullanışlıdır.
Sayısal modda 2 ile temsil edilir. Örneğin:
Kod:
chmod 2775 shared_directory

Sticky Bit (Yapışkan Bit): Genellikle dizinler üzerinde kullanılır. Sticky bit ayarlı bir dizinde, sadece dosyanın sahibi, dizinin sahibi veya `root` kullanıcısı o dizin içindeki bir dosyayı silebilir veya yeniden adlandırabilir. Bu, herkesin yazma iznine sahip olduğu ortak dizinlerde (örneğin `/tmp`) yanlışlıkla veya kasıtlı olarak başka kullanıcıların dosyalarını silmesini engellemek için idealdir.
Sayısal modda 1 ile temsil edilir. Örneğin:
Kod:
chmod 1777 /tmp
(buradaki 777 zaten `rwxrwxrwx` izinleridir, sticky bit sadece silme davranışını etkiler).

Bu özel izinler, `ls -l` çıktısında yetki dizesinin `x` yerine `s` (SUID/SGID) veya `t` (sticky bit) ile gösterilmesiyle belirtilir. Eğer `x` izni de varsa küçük harf, yoksa büyük harf olarak görünür (örneğin `rws` veya `rwS`).

UMask: Varsayılan İzinleri Ayarlama

Yeni bir dosya veya dizin oluşturduğunuzda, bunlara varsayılan izinler atanır. Bu varsayılan izinler `umask` değeri tarafından kontrol edilir. `umask`, izinlerden çıkarılacak bitleri belirler. Örneğin, bir dosya veya dizin oluşturulurken verilebilecek maksimum izinlerden `umask` değeri kadar izin eksiltilir.

Genel kural:
* Yeni dosyalar için maksimum izin `666` (rw-rw-rw-)'dir.
* Yeni dizinler için maksimum izin `777` (rwxrwxrwx)'dir.

`umask` değeriniz `0022` ise (yaygın bir varsayılan değer):
* `0022`'deki ilk `0`, özel izinler içindir (SUID/SGID/Sticky).
* Diğer üç basamak sırasıyla sahip, grup ve diğerleri için çıkarılacak izinleri belirtir.
* `0`: Sahip için hiçbir şey çıkarılmaz.
* `2`: Grup için yazma izni (w=2) çıkarılır.
* `2`: Diğerleri için yazma izni (w=2) çıkarılır.

Dolayısıyla, `umask 0022` ile:
* Yeni dosya izinleri: `666 - 022 = 644` (rw-r--r--)
* Yeni dizin izinleri: `777 - 022 = 755` (rwxr-xr-x)

`umask` değerini görmek için:
Kod:
umask
# Çıktı: 0022

Geçici olarak değiştirmek için:
Kod:
umask 0002
# Yeni dosya izinleri 664, yeni dizin izinleri 775 olacaktır.
Kalıcı yapmak için `~/.bashrc` veya `~/.profile` gibi kabuk yapılandırma dosyalarını düzenlemeniz gerekir.

Yüksek Yetkiler: sudo ve su Komutları

su (switch user): Başka bir kullanıcıya geçiş yapmak için kullanılır. Argüman verilmezse varsayılan olarak `root` kullanıcısına geçiş yapar.
Kod:
su -               # root kullanıcısına tam bir oturumla geçiş yapar
su user2           # user2 kullanıcısına geçiş yapar
`su` komutuyla `root` olunduğunda, `root` şifresi gereklidir. Bu, şifrenin her zaman bilindiği anlamına gelir ki bu da bir güvenlik riski olabilir.

sudo (superuser do): `sudo` komutu, yetkili bir kullanıcının, kendi şifresini kullanarak belirli komutları `root` veya başka bir kullanıcının yetkileriyle çalıştırmasına izin verir. Bu, `root` şifresini birden fazla kullanıcıya vermek zorunda kalmadan sistem yönetimi yetkilerini dağıtmanın daha güvenli bir yoludur. `sudo` yetkileri `/etc/sudoers` dosyası aracılığıyla yapılandırılır.
Kod:
sudo apt update         # Sistem paket listelerini root yetkileriyle günceller
sudo useradd newuser    # Yeni bir kullanıcı ekler

Güvenlik Notu: `sudo` kullanımı, sistem yöneticileri arasında en çok tercih edilen yöntemdir çünkü `root` şifresini doğrudan paylaşma ihtiyacını ortadan kaldırır, yapılan işlemleri loglar ve belirli kullanıcıların sadece belirli komutları çalıştırmasına izin verme esnekliği sunar.

Kullanıcı ve Grup Bilgilerini Saklayan Dosyalar

Linux sistemlerinde kullanıcı ve grup bilgileri, genellikle aşağıdaki dosyalarda saklanır:
  • `/etc/passwd`: Sistemdeki tüm kullanıcı hesaplarının temel bilgilerini (kullanıcı adı, UID, GID, ana dizin, varsayılan kabuk) içerir. Şifreler burada depolanmaz (eski sistemlerde depolanırdı, bu yüzden adı "passwd").
  • `/etc/shadow`: Kullanıcıların şifrelerinin şifrelenmiş (hashlenmiş) hallerini, şifre son kullanma tarihlerini ve ilgili diğer güvenlik bilgilerini içerir. Bu dosya sadece `root` kullanıcısı tarafından okunabilir olmalıdır.
  • `/etc/group`: Sistemdeki tüm grupların ve bu gruplara üye olan kullanıcıların listesini içerir (grup adı, GID, grup üyeleri).
  • `/etc/gshadow`: Grupların şifrelenmiş şifrelerini (eğer varsa) ve grup yöneticilerini içerir. `/etc/shadow` dosyasına benzer şekilde, hassas bilgileri barındırır ve erişimi kısıtlıdır.

En İyi Yetkilendirme Uygulamaları

Etkili yetkilendirme yönetimi, sağlam bir Linux sistem güvenliği duruşunun temelidir. İşte dikkate almanız gereken bazı en iyi uygulamalar:

  • En Az Ayrıcalık Prensibi: Kullanıcılara ve uygulamalara yalnızca görevlerini yerine getirmeleri için gereken minimum izinleri verin. Fazla yetki, potansiyel güvenlik açıklarını artırır.
  • Grup Kullanımını Teşvik Edin: Birden fazla kullanıcının aynı kaynaklara erişmesi gerektiğinde, tek tek izin vermek yerine bir grup oluşturun ve kaynakları bu gruba atayın. Kullanıcıları gruba ekleyip çıkararak yönetimi basitleştirin.
  • Root Kullanımını Sınırlayın: `root` kullanıcısı olarak oturum açmaktan kaçının. Yüksek ayrıcalık gerektiren görevler için `sudo` kullanın. Bu, yapılan işlemleri denetlemeyi kolaylaştırır ve yanlışlıkla yapılabilecek kritik hataları azaltır.
  • Varsayılan umask Değerini Kontrol Edin: `umask` ayarlarınızın, oluşturulan yeni dosya ve dizinler için uygun varsayılan izinleri sağladığından emin olun. Genellikle `0022` veya daha kısıtlayıcı `0077` (ortak sistemler için `0077` root için daha güvenlidir, kullanıcılar için genelde `0022`) kullanılır.
  • Düzenli Yetki Denetimleri: Özellikle hassas dosya ve dizinlerin yetkilerini periyodik olarak kontrol edin. Beklenmedik değişiklikler güvenlik ihlali belirtisi olabilir.
  • Güçlü Şifre Politikaları: Yetkilendirme sadece dosya izinleriyle ilgili değildir. Kullanıcı şifrelerinin güçlü, karmaşık ve düzenli olarak değiştirilen şifreler olmasını sağlayın.
  • SUID/SGID Kullanımına Dikkat Edin: SUID ve SGID bitleri güçlü araçlardır ancak kötüye kullanıldığında ciddi güvenlik açıkları yaratabilirler. Sisteminizdeki SUID/SGID bitli dosyaları düzenli olarak denetleyin ve yalnızca gerçekten gerekli olanlar için kullanıldığından emin olun.

Sonuç

Linux'ta kullanıcı yetkilendirmeleri, sistemin güvenliği ve kararlılığı için merkezi bir rol oynar. Dosya ve dizin izinlerinin (rwx), özel izinlerin (SUID, SGID, Sticky Bit), sahiplik (chown, chgrp) ve varsayılan izinlerin (umask) anlaşılması, her Linux kullanıcısı ve yöneticisi için elzemdir. `sudo` gibi araçlarla yetki yönetimini doğru bir şekilde uygulamak, sisteminizi yetkisiz erişimden korumanın ve operasyonel verimliliği sağlamanın anahtarıdır. Bu rehberin, Linux yetkilendirme mekanizmalarına dair kapsamlı bir anlayış geliştirmenize yardımcı olduğunu umuyoruz.
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected