10.2. Bir kullanıcının oluşturulması

Linux çekirdeği, kullanıcıları sadece basit sayılar olarak algılar. Her kullanıcı için tam sayılardan oluşan benzersiz bir tanımlama yapılmıştır, çünkü bir bilgisayar için sayılarla uğraşmak harflerden oluşan isimler ile uğraşmaktan daha kolaydır. Bunlara kullanıcı kimliği (uid) ve grup kimliği (gid) denir. Çekirdek dışında ayrı oluşturulmuş veritabanlarında her bir kimlik için kullanıcı ismi olarak tanımlanan metinsel adlar tutulur. Ve tabii ki bu veritabanı bazı ek bilgileri de içerir.

Bir kullanıcı oluşturmak için, kullanıcı veritabanına bir kullanıcı hakkında bilgiler eklemelisiniz ve bu kullanıcı için bir ev dizini yaratmalısınız. Ayrıca kullanıcıyı eğitmek ve ona başlangıç için uygun bir ortam hazırlamak da gerekebilir.

Pek çok Linux dağıtımı kullanıcı hesapları oluşturmak için gereken araçlar ile gelir. Bu araçların kullanışlı sürüm ve çeşitleri bulunur. Bunlardan komut satırı uygulaması olan ikisi adduser ve useradd dışında bir GUI araç da bulunabilir. Hangisi olursa olsun sonuçta, geriye el ile yapılması gereken pek az iş kalır. Ayrıntılar pek çok ve karmaşık olsa da bu araçlar önemsiz görünen her şeyi yapar. Bununla birlikte Kullanıcıların elle oluşturulması bölümünde bütün bu ıvır zıvır şeylerin el ile nasıl yapılacağı açıklanmaktadır.

10.2.1. /etc/passwd ve diğer bilgi dosyaları

Bir Unix işletim sistemindeki en basit veri tabanı; geçerli kullanıcıların ve onların birleştirilmiş bilgilerinin listelendiği /etc/passwd bir metin dosyasıdır. Bu dosya parola dosyası olarak anılır. Bu dosyada her kullanıcı için bir satır ve her satırda iki nokta üstüste işaretleri ile ayrılmış 7 sütun bulunur:

  • Kullanıcı ismi.
  • Şifrelenmiş olarak parola.
  • Kullanıcı kimliği (bir numara).
  • Grup kimliği (bir numara).
  • Kullanıcının gerçek ismi ve heapla ilgili diğer açklamalar
  • Ev dizini.
  • Bağlantı kabuğu (başlangıçta çalışacak kabuk)

passwd kılavuz sayfasında bu dosya biçemi hakkında daha ayrıntılı bilgi bulunmaktadır.

Sistemdeki her hangi bir kullanıcı bu parola dosyasını okuyabilir ve böylece diğer kullanıcıların adlarını öğrenebilir. Bunun anlamı, ikinci bölümde bulunan parolaların da herkes tarafından görülebileceğidir. Bu parolalar şifreli olduğu için, teorik olarak ortada bir sorun yoktur. Bununla beraber bu şifreler kırılabilir, özelliklede bir sözlükte bulunabilecek bir şeyse veya çok kısaysa. Bu nedenle, parolaları bir parola dosyasında saklamak iyi bir fikir sayılmaz.

Pek çok Linux sistemi gölge parolalar kullanır. Bu parola saklamanın güveni bir yoludur: bu sistemde parolalar şifrelenmiş bir şekilde, sadece root tarafından okunabilen, /etc/shadow dosyasında tutulur. /etc/shadow dosyası ikinci alanda sadece özel bir işaret ihtiva eder. Kullanıcı kimliğini kanıtlaması gereken herhangi bir uygulama setuid'dir ve bu nedenle gölge parola dosyasına erişimi vardır. Normal uygulamalar diğer alanları kullanır ve parolalara erişemez.

10.2.2. Sayısal kullanıcı ve grup kimliklerinin seçilmesi

Pek çok sistemde sayısal kullanıcı ve grup kimliklerinin ne olduğu pek de önemli değildir, fakat şayet bir ağ dosya sistemi (NFS) kullanıyorsanız, bütün sistemlerde aynı uid ve gid'ye sahip olmanız gerekmektedir. (uid=user id - kullanıcı kimliği, gid=group id - grup kimliği). Bu NFS'nin kullanıcıları sayısal kullanıcı kimlikleri ile tanımlamasından kaynaklanır. Şayet NFS kullanmıyorsanız, hesap oluşturma araçlarının bunları otomatik olarak sizin yerinize seçmesine izin verebilirsiniz.

Şayet NFS kullanıyorsanız, kullanıcı bilgilerinin birbirine uyması için bir mekanizma bulmak zorundasınız. Alternatif yollardan birisi NIS sistemidir (XXX network-admin-guide'a bakabilirsiniz).

Bunun yanında, sayısal kullanıcı kimliklerinin tekrar kullanılmasını önlemeyi denemelisiniz, çünkü kullanıcı kimliğinin yeni sahibi, eski sahibinin dosyalarına, postalarına veya her neyse onlara ulaşabilir.

10.2.3. Ortamın hazırlanması: /etc/skel

Yeni bir kullanıcı için ev dizini bu /etc/skel dizinin içindeki dosyalarla oluşturulur. Sistem yöneticisi, kullanıcılar için daha hoş öntanımlı ortamlar sağlamak için, /etc/skel içinde dosyalar oluşturabilir. Örneğin /etc/skel/.profile dosyasını oluşturup, içinde, yeni kullanıcılar için EDITOR ortam değişkenininde daha kullanıcı dostu metin düzenleyiciler belirtebilir.

Bununla beraber, /etc/skel dizinini mümkün olduğunca küçük tutmak daha iyidir, çünkü mevcut kullanıcıların dosyalarını güncellemesi imkansızlaşabilir. Örneğin kullanıcı dostu metin düzenleyicinin adı değiştirilirse, bütün mevcut kullanıcılar kendi .profile dosyalarını düzenlemek zorunda kalacaktır. Sistem yöneticisi bir betik kullanarak bunu otomatik olarak yapmayı deneyebilir, fakat bu yöntemle birilerinin dosyalarının bozulması neredeyse kesindir.

Mümkün olduğunca, genel ayarları genel dosyalarda yapmak daha iyi olacaktır, örneğin /etc/profile dosyası gibi. Bu yolla, hiç kimsenin dosyalarına ve ayarlarına zarar vermeden güncelleme yapmak mümkün olacaktır.

10.2.4. Kullanıcıların elle oluşturulması

Kullanıcıları elle oluşturmak için aşağıdaki adımları izleyin

  • /etc/passwd dosyasını vipw(8) ile düzenleyin ve yeni bir hesap için yeni bir satır ekleyin. Sözdizimleri konusunda dikkatli olun. BİR SATIRI BİR METİN DÜZENLEYİCİ İLE DOĞRUDAN DOĞRUYA ASLA DÜZENLEMEYİN! vipw dosyayı kilitleyeceği için diğer komutlar aynı anda güncelleme yapmayı deneyemezler. Parola alanını `*' yapmalısınız, böylece sisteme bağlanmak imkansız olur.

  • Şayet yeni bir grup oluşturmanız gerekiyorsa, aynı yöntemle /etc/group dosyasını vigr(8) ile düzenleyin.

  • Kullanıcı ev dizinini mkdir(1) kullanarak oluşturun.

  • /etc/skel dizininin içeriğini yeni ev dizinine kopyalayın.

  • chown(1) ve chmod(1) ile sahipleri ve izinleri sabitleyin. -R seçeneği oldukça kullanışlıdır. Doğru izinler durumdan duruma farklılık gösterir fakat genellikle aşağıdaki komutlar doğru işlemleri yapar:

    # cd /home/kullanıcı
    # chown -R kullanıcı.grup .
    # chmod -R go=u,go-w .
    # chmod go= .
    
  • passwd(1) ile parolayı belirleyin.

Son adımda parolayı düzenledikten sonra kullanıcı hesabı çalışmaya başlar. Her şey bitmeden parolayı düzenlemeyin; yoksa kullanıcı bir dikkatsizlik sonucu, siz hala dosyaları kopyalarken, sisteme bağlanabilir.

Bazen hiç kimse tarafından kullanılmayan "aptal" hesaplar oluşturmak gerekebilir. Örneğin; anonim bir FTP sunucusunu düzenleyebilmek için ftp adında bir kullanıcı hesabı açmanız gerekir (böylece herkes,bir kullanıcı hesabı açmadan buradan dosya indirebilir). Bu gibi durumlarda, genellikle parola ayarlamak gerekmez. Gerçekte, bunu yapmamak daha iyidir, böylece bu hesabı, root herhangi bir kullanıcı haline gelebildiğinden root dışında hiç kimse kullanamaz.