LANGUAGE TRANSLATE

English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified

1 Mart 2012 Perşembe

KULLANICI VE GRUPLARIN YÖNETİMİ


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.

1.1 Yeni Kullanıcı oluşturmak

Sisteme kullanıcı eklemek için useradd komutu kullanılır.
[root@linuxserver /]#useradd soner
Bir hesabın geçerli olabilmesi için passwd komutu ile parola belirlenmelidir.
[root@linuxserver /]#passwd 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.

1.2 Kullanıcı hesapları üzerinde değişiklikler yapmak

[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.

1.3 Kullanıcı hesaplarının silinmesi


Userdel komutu ile kullanıcı silinir.
[root@linuxserver /]# userdel soner
Eğer –r parametresi kullanılırsa kullanıcı hesabının ev dizinide silinir.
[root@linuxserver /]# userdel -r soner

1.4 Bir hesabı kilitlemek

Bir hesabı geçici bir süre için kilitlemek istiyorsak
usermod –L username
Kilidi açmak için ise
usermodU username

1.5 Örnekler


Birincil grubu users olan ve ayrıca yoneticiler, pazarlama ve satis grubuna da uye olan erol adında bir kullanıcı oluşturmak

[root@linuxserver /]#useradd –g users - G yoneticiler,pazarlama,satis erol

[root@linuxserver /]# useraddg pazarlamaG bilgiislem,muhasebe -d /home/mehmetinevis /sbin/nologin -u 661 mehmetcMehmet Karhraman

1.6 /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çinErkan Pehlivandı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.

1.7 /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+)

1.8 chage komutu

Şifre sure işlemleri için chage komutu kullanılır.
chage [ -l ] [ -m min_days ] [ -M max_days ] [ -W warn ] [ -I inactive ] [ -E expire ] [ -d last day ] user
[root@linuxserver /]#chagel selim
komutu selim kullanıcısı için geçerli olan şifre parametrelerini ekrana yazar.
Tarihler YYYY/AA/GG şeklinde veya UNIX zaman formatı şeklinde olabilir.
Selim kullanıcısın parolasının süresinin 1 Mart 2005 te dolması isteniyorsa
[root@linuxserver /]#chageE 2005/03/01 selim
NOT: Tüm bu seçenekler /etc/shadow dosyasının doğrudan el ile düzenlenmesi ile de yapılabilir.

2. Grup Yönetimi:

Grupları yönetmek içinse groupadd, groupmod ve groupdel komutları kullanılır. Bu komutlarda /etc/group dosyasını işler. Kullanıcı yönetiminde olduğu gibi eğer shadow şifreleme kullanılıyorsa parolalar /etc/gshadow dosyasında tutulur. Guruplar içlerinde bir çok kullanıcıyı barındırabilirler. Yeni bir grup oluşturmak için groupadd komutunu kullanırız.

2.1 Yeni grup oluşturmak

[root@linuxserver root]#groupadd ortak -g 501
Yukarıda ki örnekte grup tanımlayıcısı (gid) 501 olan ortak adlı bir grup oluşturuluyor. Bir başka komut olan groupmod komutu ise grup özelliklerini değiştirmemizi sağlar.

2.2 Gruplar üzerinde değişiklik yapmak

[root@linuxserver root]#groupmod -n ortak2 ortak1
yukarıdaki örnek ise ortak1 adlı grubu ortak2 olarak adlandırır.

2.3 Grupları silmek


Grupları silmek içinse groupdel komutunu kullanırız.
[root@linuxserver root]#groupdel ortak

2.4 Gruplara kullanıcı eklemek


gruba kullanıcı ekleme

Gruba kullanıcı ekleme gpasswd komutu ile yapılır.

  • Ekleme için add (-a)
  • Silme için remove (-d)

Örnek: senol adlı kullanıcıyı muhasebe grubuna ekleme

[root@linuxserver root]#gpasswd -a senol muhasebe

2.5 Kullanıcı ve grup işlemleri

Herhangi bir kullanıcı üye olduğu grupları listeleyebilmek için groups komutunu kullanabilir. Sistem yöneticisi ise bu komutu kullanıcı adı ile kullanarak, o kullanıcının üye olduğu grupları listeleyebilir.
[root@linuxserver root]# groups erkan
erkan : erkan ortak muhasebe
Kullanıcı yönetiminde /etc/passwd dosyasında herbir kullanıcı için bir gui tanımlandığını görmüştük. Bu tanımlayıcı o kullanıcının birincil gurubunu oluşturuyordu. Birincil grup kullanımını anlamak için ilk önce aşağıdaki örneğe gözatalım.
[erkan@linuxserver erkan]$ touch belge
[erkan@linuxserver erkan]$ ls -l belge
-rw-rw-r-- 1 erkan erkan 0 May 30 17:27 belge
Yukarıdaki çıktıda belgenin grubu erkan olarak görülüyor. Herhangi bir kullanıcı birincil gurubunu değiştirmek istediğinde newgrp komutundan sonra grup adını yazar. Grup parolasını doğru olarak yazdıktan sonra birincil grubu ayarlanır.
[erkan@linuxserver erkan]$ newgrp ortak
Password:
[erkan@linuxserver erkan]$
yukarıdaki örnekte erkan kullanıcısının birincil grubu ortak olarak değiştiriliyor.
[erkan@linuxserver erkan]$ id
uid=501(erkan) gid=501(ortak) groups=502(erkan)
[erkan@linuxserver erkan]$ touch belge2
[erkan@linuxserver erkan]$ ls -l belge2
-rw-r--r-- 1 erkan ortak 0 May 30 19:29 belge2
Erkan kullanıcısının gidortak ve oluşturduğu belgenin grubu ortak olarak değişmiştir. Fakat bu değişiklikler oturum ile sınırlıdır. Kullanıcı oturumu kapattıktan sonra gid tekrar /etc/passwd dosyasında ki varsayılan durumuna döner.
Not: Gruplara gpasswd komutu ile bir parola atadığımızda eğer shadow parolalar etkin ise bu parola /etc/gshadow dosyasına yazılır. Fakat gpasswd komutundaki bir hata sebebiyle oluşturulan bu parolaları newgrp komutu okuyamamaktadır. Bu problemi gidermek için geçici olarak parolaları /etc/group dosyasında tutabiliriz. Böylelikle newgrp komutu parolaları gshadow dosyası yerine /etc/group dosyasından okuyacaktır. Shadow güvenliği kaldırmak için grpuncov komutunu kullanabiliriz. Bu komut yalnızca gruplar için shadow güvenliği kaldırır.
[root@linuxserver root]#grpuncov
Bir başka çözüm ise bu hatanın düzeltilmiş yeni versiyonunu içeren shadow-utils paketi sisteminize kurmaktır.
ALINTIDIR
KAYNAK:www.belgeler.org