Son Konu

UNIX Sistemlerde Grup ve Kullanıcı Yönetimi

dagcı

Yeni Üye
Katılım
9 Ocak 2022
Mesajlar
152,900
Tepkime
0
Puanları
36
Yaş
68
Credits
0
Geri Bildirim : 0 / 0 / 0
UNIX-Licence-Plate.jpeg

UNIX ve UNIX-benzeri sistemler, ucu bucağı olmayan bir dehliz gibi. Her ne kadar felsefe olarak basitliği ve kullanışlılığı temel alsalar da, yine temellerinde yer alan özgürlük sayesinde her gün daha da büyüyorlar; ve bu büyüme 1969 yılından beri devam ediyor! UNIX sistemler ve yıllar içinde gelişen standartlar hakkında bilgi sahibi olduğumuza göre, UNIX sistemlerde grup ve kullanıcı yönetimine giriş yapabiliriz.

UNIX sistemleri bir otel, grupları bir otel odası, ve kullanıcıları ise otelde kalan kişiler olarak düşünebiliriz. Her kullanıcının kendine ait bir kullanıcı kimlik numarası, kullanıcı adı ve şifresi olmak zorundadır, aksi takdirde odaya giremezler. Tüm kullanıcıların kullanıcı bilgileri,  /etc/passwd dosyasında bulunur.
passwd-640x440.jpg
Bilgisayarımdaki “/etc/passwd” dosyasının içeriği. Her satırda farklı kullanıcının bilgileri mevcut.
Bazı UNIX sistemlerde, “passwd” dosyasının içerisinde kullanıcıların hash’lenmiş şifreleri de bulunabilir. Fakat çoğu UNIX sistemde, şifreler /etc/shadow içerisinde tutulur, ve bu dosyayı sadece kök yetkisine sahip olan kişiler açabilir.

passwd” dosyasının içerisinde kullanıcıların:
  • Grup numarası,
  • Kullanıcı numarası,
  • Ev dizinleri (home directory),
  • Varsayılan kabuk (shell) uygulamaları gibi bilgiler bulunmaktadır.
Bu tarz sistem dosyalarını mümkün olduğunca elle düzenlemekten kaçınmanızı tavsiye ederiz. Programınızda bu bilgileri kullanacaksanız, hedef UNIX sistemin sistem çağrılarını kullanabilirsiniz. Örneğin getpwnam()çağrısı sayesinde, fonksiyon parametresi olarak kullanıcı adı vererek /etc/passwd dosyasının içeriğini sistem tarafından derlenmiş bir şekilde alabilirsiniz. getpwnam() fonksiyonunun Single UNIX Specification’ın 3.versiyonu içerisinde bulunduğunu da belirtelim. getpwnam() sistem çağrısı hakkında daha fazla bilgi almak için burayı ziyaret edebilirsiniz.

Kullanıcıların ortak erişebileceği dosyalar gibi sistem kaynaklarının olabilmesi çok kullanışlı bir özellik. Bu özelliğe UNIX sistemlerde grup adı veriliyor. Özellikle UNIX işletim sisteminin 70’lerin mainframe’lerinde çoklu kullanım amacıyla geliştirildiğini ve o zamanlar versiyon kontrol sistemlerinin daha olmadığını göz önünde bulundurursak, çok kullanışlı bir özellik olduğunu anlıyoruz.

Çok eski UNIX implementasyonlarında, kullanıcılar sadece tek bir grubun üyesi olabiliyorlardı. BSD ile birlikte kullanıcılar çoklu grup özelliğini kazandı ve bu yaklaşım diğer UNIX sistemler tarafından da kabul gördü. Çoklu grup özelliği daha sonra “POSIX.1-1990” standardına eklendi. Bu standarda göre her grup, aynı kullanıcı yönetiminde olduğu gibi, her grubun özelliği /etc/group dosyasında tek bir satır olarak saklandı.
group-640x360.jpg
Bilgisayarımdaki “/etc/group” dosyasının içeriği.
group” dosyasının içerisinde gruplara ait:
  • Grup isimleri,
  • Grup numaraları (gid)
  • Virgülle ayrılan kullanıcı listeleri mevcut.
Kullanıcı bilgileri gibi, grup bilgilerinin de elle düzenlenmesi tavsiye edilmiyor. Grup bilgilerini almak için kullanıcı bilgilerini almaya benzer bir yaklaşımda bulunarak, getgrnam() çağrısını kullanabilir ve yukarıda bahsettiğimiz grup bilgilerini çekebilirsiniz. getgrnam() sistem çağrısı hakkında detaylı bilgi için burayı ziyaret edebilirsiniz.

Kök kullanıcının (root veya superuser olarak da bilinir) sistemde özel yetkileri vardır. Bu kullanıcının hesabının kimlik numarası (uid), sıfıra eşittir ve çoğu zaman kullanıcı ismi “root”tur.

Tipik UNIX sistemlerde kök kullanıcı, tüm haklara sahip olduğu için güvenlik doğrulamalarını direkt olarak geçer. Örneğin, sistemdeki herhangi bir dosyaya koşulsuz şartsız erişim sağlar. Veya diğer kullanıcıların çalışan işlemlerine sinyaller göndererek onların durdurulmasına hatta kapanmasına sebep olabilir. Kısacası kök kullanıcıların sistemde yapabilecekleri şeyler neredeyse sınırsızdır ve bu güç aslında sistem yönetiminin sağlanması adına sistem sahibine verilmiştir.
sudo-430x480.png
UNIX sistemlerde en ünlü kök yetki aracı olan “sudo” programının logosu.
Normal kullanıcının yetki ihtiyacı


Normal bir kullanıcının kök yetkisine ihtiyacı olduğu zaman, kök yetkisini veren programlar devreye giriyor. Özellikle modern UNIX sistemlerde çoğunlukla root hesabına girişlerin devre dışı bırakıldığını ve bir kullanıcı hesabı oluşturmanın zorunlu olduğunu görürüz. Kök yetkisini sağlayan programlar, konfigürasyon dosyalarında yazan grupta olup olmadığımıza göre, veya konfigürasyon dosyalarında yazan kullanıcı adına sahip olup olmadığımıza göre, kök şifresini doğru girmek kaydıyla yetkiyi normal kullanıcıya veriyorlar.

Kök hesabına girişlerin devre dışı bırakılma nedeni ise güvenlik. Çünkü kök hesabının elinde, az önce de bahsettiğimiz gibi, tüm yetkiler bulunuyor. Bu yetkiler, hacker’lar ve kötü amaçlı yazılımlar tarafından da zorlanıyor. Eh, büyük gücün getirdiği büyük sorumluluk olsa gerek!

Bu yazımızda sizlere UNIX sistemlerde kullanıcı ve grup yönetim mekanizmalarını anlattık. Görüşlerinizi yorumlar kısmından paylaşabilir, sorularınızı Technopat Sosyal üzerinden sorabilirsiniz.
 
Üst Alt