Teknoloji

UNIX Sistemlerde Grup ve Kullanıcı Yönetimi

UNIX ve UNIX-benzeri sistemler, ucu bucağı olmayan bir dehliz üzere. Her ne kadar ideoloji olarak kolaylığı ve kullanışlılığı temel alsalar da, yeniden 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 nazaran, UNIX sistemlerde küme ve kullanıcı idaresine giriş yapabiliriz.

UNIX sistemleri bir otel, kümeleri bir otel odası, ve kullanıcıları ise otelde kalan şahıslar olarak düşünebiliriz. Her kullanıcının kendine ilişkin bir kullanıcı kimlik numarası, kullanıcı ismi ve şifresi olmak zorundadır, aksi takdirde odaya giremezler. Tüm kullanıcıların kullanıcı bilgileri,  /etc/passwd evrakında bulunur.


Bilgisayarımdaki “/etc/passwd” evrakının içeriği. Her satırda farklı kullanıcının bilgileri mevcut.

Kimi UNIX sistemlerde, “passwd” belgesinin içerisinde kullanıcıların hash’lenmiş şifreleri de bulunabilir. Ama birden fazla UNIX sistemde, şifreler /etc/shadow içerisinde tutulur, ve bu belgeyi yalnızca kök yetkisine sahip olan bireyler açabilir.

passwd” belgesinin içerisinde kullanıcıların:

  • Küme numarası,
  • Kullanıcı numarası,
  • Mesken dizinleri (home directory),
  • Varsayılan kabuk (shell) uygulamaları üzere bilgiler bulunmaktadır.

Bu üslup sistem belgelerini mümkün olduğunca elle düzenlemekten kaçınmanızı tavsiye ederiz. Programınızda bu bilgileri kullanacaksanız, gaye UNIX sistemin sistem davetlerini kullanabilirsiniz. Örneğin getpwnam()çağrısı sayesinde, işlev parametresi olarak kullanıcı ismi vererek /etc/passwd evrakının içeriğini sistem tarafından derlenmiş bir formda alabilirsiniz. getpwnam() işlevinin Single UNIX Specification’ın 3.versiyonu içerisinde bulunduğunu da belirtelim. getpwnam() sistem daveti hakkında daha fazla bilgi almak için burayı ziyaret edebilirsiniz.

Kullanıcıların ortak erişebileceği belgeler üzere sistem kaynaklarının olabilmesi çok kullanışlı bir özellik. Bu özelliğe UNIX sistemlerde küme ismi veriliyor. Bilhassa UNIX işletim sisteminin 70’lerin mainframe’lerinde çoklu kullanım amacıyla geliştirildiğini ve o vakitler versiyon denetim 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 yalnızca tek bir kümenin üyesi olabiliyorlardı. BSD ile birlikte kullanıcılar çoklu küme özelliğini kazandı ve bu yaklaşım öbür UNIX sistemler tarafından da kabul gördü. Çoklu küme özelliği daha sonra “POSIX.1-1990” standardına eklendi. Bu standarda nazaran her küme, tıpkı kullanıcı idaresinde olduğu üzere, her kümenin özelliği /etc/group belgesinde tek bir satır olarak saklandı.


Bilgisayarımdaki “/etc/group” belgesinin içeriği.

group” belgesinin içerisinde kümelere ilişkin:

  • Küme isimleri,
  • Küme numaraları (gid)
  • Virgülle ayrılan kullanıcı listeleri mevcut.

Kullanıcı bilgileri üzere, küme bilgilerinin de elle düzenlenmesi tavsiye edilmiyor. Küme bilgilerini almak için kullanıcı bilgilerini almaya emsal bir yaklaşımda bulunarak, getgrnam() davetini kullanabilir ve üstte bahsettiğimiz küme bilgilerini çekebilirsiniz. getgrnam() sistem daveti hakkında ayrıntılı bilgi için burayı ziyaret edebilirsiniz.

Kök kullanıcının (root yahut 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 birden fazla vakit kullanıcı ismi “root”cins.

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 rastgele bir belgeye şartsız koşulsuz erişim sağlar. Yahut öteki kullanıcıların çalışan süreçlerine sinyaller göndererek onların durdurulmasına hatta kapanmasına sebep olabilir. Velhasıl kök kullanıcıların sistemde yapabilecekleri şeyler neredeyse sınırsızdır ve bu güç aslında sistem idaresinin sağlanması ismine sistem sahibine verilmiştir.


UNIX sistemlerde en ünlü kök yetki aracı olan “sudo” programının logosu.

Olağan kullanıcının yetki muhtaçlığı

Olağan bir kullanıcının kök yetkisine muhtaçlığı olduğu vakit, kök yetkisini veren programlar devreye giriyor. Bilhassa çağdaş UNIX sistemlerde çoğunlukla root hesabına girişlerin devre dışı bırakıldığını ve bir kullanıcı hesabı oluşturmanın mecburî olduğunu görürüz. Kök yetkisini sağlayan programlar, konfigürasyon belgelerinde yazan kümede olup olmadığımıza nazaran, yahut konfigürasyon evraklarında yazan kullanıcı ismine sahip olup olmadığımıza nazaran, kök şifresini yanlışsız girmek kaydıyla yetkiyi olağan kullanıcıya veriyorlar.

Kök hesabına girişlerin devre dışı bırakılma nedeni ise güvenlik. Zira kök hesabının elinde, az evvel de bahsettiğimiz üzere, tüm yetkiler bulunuyor. Bu yetkiler, hacker’lar ve berbat emelli 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 küme idare düzeneklerini anlattık. Görüşlerinizi yorumlar kısmından paylaşabilir, sorularınızı Technopat Toplumsal üzerinden sorabilirsiniz.

Kaynak: Technopat

Başa dön tuşu