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.