Konum:Ağ Günlükleri / emincan ağ günlüğü / Kullanıcı ve Grupların Yönetimi - 1

Kullanıcı ve Grupların Yönetimi - 1


By emincan - Posted on 08 May 2008

Linux doğuşundan itibaren çok kullanıcılı bir işletim sistemi olmuştur. Bir çok kullanıcı aynı anda sisteme bağlanabilir vede sistemde aynı anda farklı uygulamaları çalıştırabilir. Bunun yanı sıra Linux sistemleri üzerinde çalışan uygulamaların bir çoğuda , sistemle etkileşime geçmek ve işlemleri yürütmek için kullanıcılar oluştururlar. Örneğin MySQL veritabanı sunucusunun mysql adında bir kullanıcısı mevcuttur. Bununla birlikte sistemde oluşturulan her bir kullanıcı adıyla birlikte birde, bu kulanıcı adına uygun bir de grup oluşturulur. Varsayılan ayar olarak kullanıcılar kendi isimlerine uygun gruplara üye yapılırlar. Çeşitli görevleri yerine getirmek için kullanıcılardan bağımsız gruplar da oluşturulabilir. Daha sonra bu guruplara belirli kullanıcılar üye olabilirler. Kullanıcılar ve gruplar, dosyaların ve dizinlerin sahipliğini alabilirler. Dosya ve dizinlerin sahipleri bu belirli dizinlere erişim için tam yetkili olurlar. Dosya ve dizin erişimlerini kavrayabilmek için sistem idaresinin en temel işi olan kullanıcı ve grup yönetimini anlamak gerekir.

 

1. Kullanıcı Yönetimi 

Kullanıcı yönetimi için kullanılan komutlar “useradd” , “usermod” ve “userdel” dir. Bu komutlar /etc/passwd dosyasında girdiler oluşturur ve bu girdileri düzenler. passwd ve shadow dosyaları hakkında ayrıntılı açıklama daha sonra yapılacaktır. Sisteme kullanıcı eklemek için useradd komutu kullanılır.

[root@linuxserver /]#useradd soner

Yukarıdaki komutla sisteme soner adında bir kullanıcı eklenmiştir. useradd komutu için varsayılan değerler /etc/login.defs adlı dosyadan alınır. Bu dosyada yer almayan değerler ise komutla birlikte girilir. useradd komutunun varsayılan değerlerini görmek için komutla birlikte -D parametresi kullanılır. Komutla birlikte girilen parametreler login.defs dosyasında bulunan değerleri geçersiz kılar. Varsayılan değerler grup adı , skel dizini , ev dizini , kabuk adından oluşur. Skel dizini başlangıç dosyalarının kopyalarını tutan sistem dizinidir. (/etc/skel) useradd komutu oluşturulan her kullanıcı için 500 den büyük bir kullanıcı tanımlayıcısı (uid) atar. Uid kullanıcının tanımlar. 

[root@linuxserver /]#useradd erkan -u 600 -g users

Yukarıdaki örnekte erkan adlı kullanıcı uid 600 ve grubu users olacak şekilde oluşturuluyor. Varolan bir kullanıcı üzerinde değişiklik yapmak istediğimizde ise usermod komutunu kullanırız.

[root@linuxserver /]#usermod -u 601 -g ortak erkan

Yukarıdaki komut erkan kullanıcısının grubunu ortak ve uid 601 olarak değiştiriyor. Kullanıcı adının son parametre olarak verildiğine dikkat edin. En çok kullanılan parametrelerin bir kısmı aşağıda verilmiştir.

-p parola:           Bir parola ayarlar..

-s kabuk:             Bir kabuk Varsayılan durumda BASH dir.

-g grup_adı:       Bir grup ayarlar

-c yorum:           Hesap ile ilgili yorum ekler.

-u kul_id:            Kullanıcının id numarasını ayarlar.

-e aa/gg/yy:     Hesap için bir dolum süresi ayarlar . Varsayılan durumda kullanılmaz.

-f gün :      Hesap süresi dolduktan sonra bir hesabın daha kaç gün aktif kalacağını belirler.

Bir hesabı sistemden kaldırmak içinse aşağıdaki komutunu vermemiz yeterli olur.

[root@linuxserver /]#userdel -r erkan

 

/etc/passwd dosyası:

Gerçekte bu komutların tümü /etc/passwd adlı dosyayı işlerler. Bu dosya kullanıcıların ve kullanıcılara ait birçok özelliğin daha tutulduğu bir dosyasıdır. Kullanıcı ve bu özellikler tek satırlık kayıtlar halinde tutulur ve bu satırlardaki herbir özellik “:” işareti ile ayrılır.  Aşağıda /etc/passwd dosyasından erkan ve melissa kullanıcısına ait girdileri görüyorsunuz.

erkan:!!:601:502:Erkan Pehlivan:/home/erkan:/bin/bash

melissa:hA6Agam7aOyN2:7798:7799::/home/melissa:/bin/bash 

Bu alanları sırası ile açıklayacak olursak, ilk alan “Kullanıcı Adı” alanıdır. Kullanıcı adları bu alanda belirtilir. Bu alan aynı zamanda kullanıcıların sisteme oturum açma adıdır. Yukarıda erkan ve melissa kullanıcıları görülüyor. İkinci alan Password alanıdır. Bu alanda ise kullanıcıların parolaları saklanır. Bu alan hiçbir şekilde elle düzenlenmemelidir. Kullanıcı parolaları passwd komutu kullanılarak verilmelidir. Erkan kullanıcısının parola alanında “!!” işareti vardır. Bu işaretin anlamı erkan kullanıcısının şifresinin henüz atanmamış olduğudur. Melissa kullanıcısının parola alanında ise 13 karakterden oluşan bir karakter dizisi vardır. Bu dizi passwd komutu ile oluşturulmuştur. (Shadow şifreleme yapılmadığı varsayılmıştır. Shadow dosyası bir sonraki bölümde anlatılacaktır.) passwd komutu parolaları bu dosyaya yazmadan önce onları şifreler. Daha sonraki alanlar ise kullanıcıyı tanımlayan id alanıdır. Bu alan her kullanıcı için benzersizdir. Bir sonraki alan kullanıcıların birincil gruplarını tanımlayan alandır. Bir kullanıcı birden fazla gruba üye olabilir. Fakat her kullanıcının yalnızca bir adet birincil grubu olabilir. Sonraki alan yorum alanıdır. Genellikle kullanıcının tam adı için kullanılır. Örnekte erkan kullanıcısı için “Erkan Pehlivan” dır. Melissa kullanıcısı için ise herhangi bir girdi belirtilmemiştir. Daha sonraki alanlar kullanıcının ev dizinini ve oturum kabuğunu belirtmektedir.

 

/etc/shadow dosyası: 

Passwd dosyası bir metin dosyasıdır ve fazla güvenilir değildir. Bu dosyaya ulaşan bir kişi bu dosyadaki şifreleri değiştirebilir yada çözebilir. Dağıtımların çoğu shadow güvenliği ile birlikte gelir. Shadow güvenliği parolaları /etc/shadow adlı bir dosyada saklar. Parolaları bu dosyaya yazmadan önce, üst düzey algoritmalar kullanarak bu parolaları şifreler. Shadow şifrelemeyi etkin hale getirmek için authconfig aracı kullanılır. (Kurulum esnasında etkinleştirilmemişse...)

Kullanıcı parolaları “crypt” olarak bilinen şifreleme yöntemi ile şifrelenir. Bu fonksiyon MD5-tabanlı olarak maksimum 34 karakterlik bir şifre üretir. Üretilen karakter katarı $1$ ile başlar ve bundan sonra gelebilecek maksimum 8 karakterlik kısımda da salt değeri yer alır. Salt değeri $ ile son bularak daha sonra gelen 22 karakter ile katar tamamlanır. Biraz daha net ifade etmeye çalışırsak katarın yapısı şu şekildedir;

$1$<maksimum_sekiz_karakterlik_salt_değeri>$<yirmi_iki_karakterlik_kullanıcı_parolası>

Burada salt değeri katar içindeki en can alıcı kısımdır. Gnu/Linux üzerinden useradd ile kullanıcı eklerken veya passwd komutu ile parola belirlerken ilgili kullanıcının parolasının nasıl oluşturulduğuna adım adım bakalım.

  • Kullanıcının belirlemek istediği parolayı al

  • Salt olarak kullanılmak üzere rastgele sekiz karakterlik bir katar oluştur.

  • Kullanıcıdan aldığın parolayı, yukarıda oluşturulmuş olan salt değeri ile birlikte crypt fonksiyonundan geçir ve sonuçta $1$ ile başlayan 34 karakterlik şifreli katarı oluştur.

Sistemde "useradd" komutu ile sisteme bir kullanıcı ekleyip parolasını da "serdar" olarak ayarlayalım. /etc/shadow için üretilen şifre aşağıdaki şekilde;

$1$Gc7mWBBa$PYrsBDL3/gFMa3wYtbu6U/

Görüldüğü üzere $1$ ile başlayıp 8 karakterlik salt değerinden (Gc7mWBBa) sonra yine $ ile salt değeri sonlanıp kullanıcısın şifresinin yer aldığı 22 karakterlik katar (PYrsBDL3/gFMa3wYtbu6U/) yer alıyor. Şimdide aynı kullanıcının parolasını "passwd" komutu ile yine "serdar" olarak ayarlayalım.

$1$jx6BHZZi$08n4VS6lVGusgcOIBW26w0

Evet görüldüğü üzere yine yapı olarak yukarıdaki sonucun aynısı ancak dikkat edilmesi gereken nokta "serdar" olarak ayarlanan şifreler için rastgele zamanda oluşturulan salt değerine bağlı olarak farklı katarlar üretilmesi. Şifreli alanlardan hemen sonra gelen ve de “:” işareti ile ayrılmış bölümler ise login.defs'te tanımlanmış hesap bilgileri ile ilgilidir. 

erkan:$1$yHcFiixR$KjjXgPZwZ7T7Zda0NKQGA1:12933:0:99999:7:::

12933 kaydın değiştirilme tarihi(1.1.1970)

0 parolanın en az geçerlilik süresi

99999 parolanın en çok geçerlilik süresi

7 parola süresinin dolmasından ne kadar önce uyarı verilecek(gün)

:boş: hesap kilitlenmeden önce geçecek süre

:boş: hesabın kilitleneceği zaman(1.1.1970+)

Emin Can - Linux Craft

Yeni yorum gönder

Bu alanın içeriği gizli tutulacak ve açıkta gösterilmeyecektir.