Linux Kullanıcı Ve Kullanıcı Grupları

KULLANICILAR VE SİSTEME LOGİN OLMA

Bir Linux sistemine her erişim bir kullanıcı hesabı yoluyla olur. Her kullanıcı hesabı da sistem administarator’u tarafından oluşturulup hakları düzenlenmiştir. root olarak adlandırılan bu en güçlü account diğer kullanıcıların hesaplarını düzenlediği için dosya, dizin, kullanıcı ve grup haklarının nasıl ayarlanacağını iyi bilmek gereklidir. Biraz root account’undan bahsedeyim..

Bir Linux sürümü kurulduktan sonra otomatik olarak bir master login yaratılır ve tahmin edeceğiniz gibi ‘root’ olarak adlandırılır. Bu kullanıcı hesabı süper kullanıcı olarak adlandırılır çünkü bu kullanıcı hesabının erişemeyeceği hiçbir alan yoktur( tabiki kendi sisteminin içinde ..). Sisteme root olarak girdiğinizde dosya izinlerinden, erişim haklarından ya da yazılıım ayarlarından hiç çekinmenizie gerek yoktur. Çünkü bu hakla bir komutla sistemi çalışamaz hale getirebilecek kadar hakkınız vardır. Bu yüzden kendinize root dan başka bir hesap açıp her zaman bu hesabı kullanmanız ve sadece gerekli olduğu taktirde root hesabını kullanmanız önerilir. Hatta çok kullanıcılı bir sisteme sahipseniz root şifresini düzenli olarak kısa aralıklarla değiştirmeniz de önerilir.

Önemli bir nokta da bu otomatik olarak yaratılan süperkullanıcı hesabının ismi ‘root’ olmak zorunda değildir. Teorik olarak bu hesap herhengi bir ismi taşıyabilir, ancak genelde root olarak kullanılır. Süperkullanıcı olmanın sistemde tanımı /etc/passwd dosyasındaki user ID nin 0 (sıfır) olmasında saklıdır. Yani şunu da söyleyeyim user ID sini 0 verdiğiniz bir diğer kullanıcı da superkullanıcının haklarına sahip olacaktır…

KULLANICI HESAPLARI

Bir sistemin tek kullanıcısı bile olsanız kullanıcı yaratmayı ve haklarını düzenlemeyi bilmelisiniz. Çünkü en azından önerilenleri yerine getirirseniz günlük kullanım için root dan başka bir hesap yaratmanız gerekmektedir. Şayet sisteminize direk olarak ya da modemle erişecek başkaları da varsa o zaman herbiri için bir hesap açmanız gerekecektir. Bu nedenle bu konuya hakim olmanız gerekmektedir.

Sisteminizi kullanacak herkesin diğerlerinden ayrı bir kullanıcı adı ve şifresi olacaktır. Bazen istisnalar olabilir, yani bir database’ e sadece read only erişen programın kullanabileceği guest ya da benzeri bir kullanıcıya ihtiyaç olabilir. Aksi durumda ilk hal geçerlidir. Her kullanıcının kullanıcı isminin farklı olması sistemin güvenliğini arttıracaktır. Mesela siz o anda kimlerin sistemde olduğunu ve ne işler yaptığını izleyebileceksiniz.

/etc/passwd dosyası kullanıcılar hakkında her bilgiyi içermektedir. Bu dosyanın sahibi root olmalıdır ve group ID olarak da root’un group numarası olan 0 (sıfır) verilmelidir. Biraz ayrıntıya girelim, ve bu dosyanın mantığını anlamaya çalışalım. Bu dosydaki her satır bir kullanıcının bilgisini belirli bir düzende saklar..

username : passwd : user ID : comment : home directory : login command

Bu dizimi anlayabilmek için yeni kurulmuş bir sistemin /etc/passwd dosyasına bir göz atalım:

root::0:0:root:/root:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
adm:*:3:4:adm:/var/adm:
lp:*:4:7:lp:/var/spool/lpd:
sync:*:5:0:sync:/sbin:/bin/sync
shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
halt:*:7:0:halt:/sbin:/sbin/halt
mail:*:8:12:mail:/var/spool/mail:
news:*:9:13:news:/usr/lib/news:
uucp:*:10:14:uucp:/var/spool/uucppublic:
operator:*:11:0:operator:/root:/bin/bash
games:*:12:100:games:/usr/games:
man:*:13:15:man:/usr/man:
postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash
nobody:*:-1:100:nobody:/dev/null:
ftp:*:404:1::/home/ftp:/bin/bash

Bu dosyadaki her satır birbirinden ‘ : ‘ ile ayrılmış yedi alandan oluşur. Eğer bu alanların herhangi birine hiçbir bilgi girilmez ise o zaman bu alan boş bırakılır ama yine de ‘ : ‘ ile ona ayrılan yeri iptal edilmeden kullanılır. Sırayla bu yedi kolona bakalım:

username kullanıcının diğerlerinden farklı olan tanımlayıcı ismi
password kullanıcının şifresi (encript edilmiş durumdadır)
user ID kullanıcıyı sisteme tanımlayan ve diğerlerinden farklı olan bir rakam
group ID dosya izinleri için kullanıcının grubunu belirler
comment genelde kullanıcının gerçek ismi yazılır ama bazen de telefon numarası bölüm  ya da benzeri bilgiler yazılır
home directory kullanıcı sisteme girince bulunacaği ve tüm dosyalarını saklayacağı ev dizini
login command kullanıcı sisteme girdikten sonra işletilecek komut. genelde bir shell başlatan
komut olmasına rağmen istendiğinde kullanıcının sadece mail programı kullanması istenirse buraya programı işleten komut yazılabilir.

KULLANICI HESABI OLUŞTURMAK

En genel olarak bir kullanıcı eklemek için gerekli dosyaya bir satırlık bilgi eklemek gerekmektedir. Eğer hangi sistemin hangi dosyada kullanıcı bilgilerini tuttuğunu bilirseniz sadece bu dosyada değişikilik yaparak kullanıcı ekler ya da çıkartabilirsiniz. Normalde kullanıcı eklemek için bazı scripler mevcuttur. Örneğin Slackware Linuxta adduser isimli bir script yaratılacak kullanıcının bilgilerini teker teker alarak bunları uygun şekilde /etc/passwd dosyasına yazar. Redhat gibi diğer sistemlerde de adduser ya da useradd komutları vardır ancak bunları parametreleriyle beraber kullanmadan bir iş yapmazlar. Yani demek istediğim sadece bir satır yazıyı ilgili dosyaya yazarak ve kullanıcıya bir dizin oluşturarak bir kullanıcı yaratabiliriz. Bu sayede en genelini öğrenmiş oluruz. /etc/passwd dosyasına ekleme yapmak için istediğiniz bir editörü kullanabilirsiniz. pico, vi , jed hatta mc kullanarak bile dosyayı değiştirebilirsiniz. Mesela şu satırı ekleyerek sisteme student diye bir kullanıcı ekleyelim :

student::103:50:studnet in school:/home/student:/bin/sh

Burada dikkat edilmesi gereken kullanıcı isminin diğerlerinden ayrı olması, User ID nin bir öncekini takip etmesi (yine diğerlerinden ayrı olan) , Group ID olarak da 50 (default group) verilmesi (bu şart olmamasına rağmen ileride değişiklik yapılabilir ya da bilinen bir grubun numarası verilebilir), bir kullanıcı ev dizini belirtilmesi ve de sisteme girince kullanacağı shell’in seçilmesi.

Sanırım şifre kısmının boş olduğunu farketmişsinizdir. Encritp edilmiş bir şifreyi siz yazamayacağınız için burayı boş bırakmalısınız. Yaptığınız değişiklikleri kaydettikten sonra bu yeni hesaba bir şifre verebilirsiniz. Verdiğiniz şifre doğrultusunda encript edilmiş bilgi /etc/passwd dosyasına yazılacaktır. Bunu yapmak için de

# passwd student

yazın ve onaylayarak bir şifre sağlayın. Bundan sonra da studnet kullanıcısının ev dizinini oluşturmanız gerekmektedir. Ardından da bu dizinin sahibini student olarak atamalıyız. Sırasıyla şu komutları işletin:

# mkdir /home/student
#chown student /home/student

ilk komutla /home/student dizini yaratılır. Ancak root olarak bu yaratıldığı için sahibi de root dur. Bu yüzden bunun sahibini değiştirmek için ikinci satırı kullandık. Yani /home/student dizininin sahibini student olarak değiştir dedik.

Buraya kadar bir kullanıcı hesabı yaratmayı öğrendik. Şimdi de artık sisteminizde bulunmasını istemediğiniz bir kullanıcının hesabını nasıl sileceğimize bakalım.

BİR KULLANICI HESABINI SİLMEK

Aynen kullanıcı eklemede olduğu gibi bazı sistemlerde otomatik olarak kullanıcı silen scriptler mevcuttur. Bu scriptler size hangi kullanıcıyı silmek istediğinizi sorarlar ve sizin verdiğiniz yanıta göre bu kullanıcıyı /etc/passwd dosyasından bulup dosyadaki bu satırı silerler.

Bir kullanıcıyı manuel olarak silmek için aynı şeyi yapmalıyız. /etc/passwd dosyasından ilgili kullanıcının bulunduğu satırı silmeliyiz. Şayet bir kullanıcının hesabını bir sure kaldırmak istiyorsanız sadece /etc/passwd dosyasındaki isminin bulunduğu satırın başına bir diyez karakteri koyabilirsiniz. Bu sayede o kullanıcının sisteme siz izin verene kadar girmesini engellersiniz.

Eğer sildiğiniz kullanıcının bir daha sisteme eklenme ihtimali yok ise o zaman o kullanıcının dizinlerini de silmelisiniz. Böylece disk tasarrufu yaparsınız. Bir komut ile bu dizini ve altdizinlerini silemek için

# rm -r /home/userdir

komutunu kullanın. Dikkat edin /home/userdir diye yazılan kullanıcının gerçek dizininin yolu olmalıdır. Yoksa başka dizinleri de silebilirsiniz.

Daha sonra kullanıcının mail spool dosyasını silin. Genellikle bu dosya /usr/spool/mail/username olarak saklanır. Deminki gibi

# rm /usr/spool/mail/student

komutunu işletirseniz student kullanıcısının mail spool dosyasını silersiniz. Norton Commander kullanmaya alışık olanlar aynı işlemleri mc ile de yapabilirsiniz. Mail temizlemesini bitirmek için kullanıcının /usr/lib/aliases dosyasında bir aliasının olmamasına dikkat edin. Eğer varsa bunu da kaldırın.

GRUPLARI KULLANMAK

Her Unix sisteminde olduğu gibi her Linux sisteminde de bütün kullanıcılar birer gruba üyedirler. Aynı gruptaki her kullanıcı aynı departmanda çalıştığını varsayın. Bu çalışanların ortak olarak erişmesi gereken datalar ya da aygıtlar olabilir. Mesela baskı bölümünün üyelerinin bulunduğu gruba renkli yazıcıyı kullanma hakkı vermek gibi. Gruplar dosya erişim haklarını ayarlamada kullanıldıkları için bir kullanıcı en az bir gruba üye olmalıdır.

Genelde küçük sistemler bir tane default gruba sahiptirler. Çünkü bu sistem yönetimini oldukça basitleştirir. Bu durumda her kullanıcının bir aygıta ya da dosyaya erişimi o aygıtların ya da dosyaların kendi erişim haklarına göre sağlanır.

Grup bilgisi /etc/group dosyasında saklanmaktadır. Bu dosya da aynı /etc/passwd dosyasında olduğu gibi bir dizime sahiptir. Örneğin yeni kurulmuş bir Linux sisteminin defauld /etc/group dosyası aşağıdakine çok benzerdir.

root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm
adm::4:root,adm,daemon
tty::5:
disk::6:root,adm
lp::7:lp
mem::8:
kmem::9:
wheel::10:root
floppy::11:root
mail::12:mail
news::13:news
uucp::14:uucp
man::15:man
users::100:games
nogroup::-1:

Burada da her satır birbirinden : ile ayrılmış dört alandan oluşmuştur ve formatı da şöyledir :

group name : group passwd : group ID : users

Bu dosya içinde her grubun kendine ait bir satırı vardır. Her Linux sisteminin işletim sistemine ait olan birkaç tane grubu vardır. Bu gruplar bin, mail, uucp, sys, ….gibidir. Biraz da sistem gruplarını inceleyelim.

root/wheel/system grubu bir kullanıcının su komutuyla root erişimine izin vermek içindir.
deamon grubu spooling dizinlerinin(mail, printer gibi) sahipliklerini sağlar.
kmem grubu programların kernel hafızasına direct erişim içindir.
sys grubu bazı sistem dosyalarını sahiplenmek içindir. Bazı sistemlerde kmem gibi davranır.
tty grubu terminallerle alakalı bütün özel dosyaların sahipliği içindir.

GRUP EKLEMEK

Bir grup eklemek için /etc/group dosyasında değişiklikler yapmanız gereklidir. Herhangi bir ASCII editör kullanarak bunu halledebilirsiniz. Ya da groupadd gibi önceden yazılmış scriptleri kullanabilirsiniz. Sonuçta yapılan iş aynıdır. Tabiki her versiyonda bu otomatiklik scriptleri mevcut değildir. Bu yüzden tam olarak yapılması gerekeni öğrenmek en iyisidir. Yeni gruplar eklemeden önce eski dosyanın bir yedeğini almanızı tavsiye ederim. Aksilik halinde geri dönebilmek için faydalı olacaktır. Mesela iki yeni grup eklemek için aşağıdaki satırları /etc/groups dosyasına ekleyin

hesap::51:student
printer::52:teacher

bunları yazıp değişiklikleri kaydettikten sonra gruplar eklenmiş olacaktır. Bir kullanıcının birden fazla gruba üye olabilmesi için kullanıcı ismini ilgili gubun yanına aralarına virgül koyarak yazabiliriz.

hesap::51:student , teacher
printer::52:teacher

Burada student ve tezcher aynı grubun üyeleridir. Burada aynı gruba ait kullanıcıların sınırı yoktur. Dilediğiniz kadar kullanıcıyı bir gruba dahil edebilirsiniz.

Kullanıcı aynı anda sadece bir gruba dahil olabilir. Şayet kullanıcı bir başka gruba da üye ise o gruba dahil olmak için komut satırında

# newgrp

komutunu kullanarak üye olduğu gruplardan bir diğerine girebilir.

GRUP SİLMEK

Eğer bir grubun artık ortadan kalkmasını istiyorsanız o zaman grubun bulunduğu satırı /etc/group dosyasından kaldırmanız yeterli olacaktır. Bunu silmeden önce /etc/passwd dosyasını kontrol edin ve bu grubun mensubları olan kullanıcıların başlangıç grubu olarak bu silinen grup olmamasına özen gösterin. Eğer bunu yapmayı unutursanız ve bir kullanıcının sisteme girdiğinde dahil olması gereken grup ortada yoksa bu kullanıcı sisteme giremeyecektir. Aynı şekilde bütün dosya ve dizinleri kontrol edip bunların silinen grubun sahipliğinde olup olmadığına bakmalısınız. Eğer varsa bunları başka grupla değiştirmelisiniz.

su KOMUTUNU KULLANMAK

Bazen normal kullanıcı hesabınızı kullanırken root olarak yapabileceğiniz işler vardır. İşte bu zaman su komutuyla çabucak root hakkına ulaşabilirsiniz. Bunu kullanmak yerine ya yeni bir terminalden tekrar login olup root olarak sisteme girmelisiniz ve işiniz bitince bu terminalden logout olup tekrar eski terminalinize dönmelisiniz. İşte bu işi sadece su komutuyla halledebilirsiniz.

Bir başka kullanıcının hesabını kullanmak isterseniz yine su komutuyla

# su student

yazabilirsiniz. Eğer sadece su yazarsanız o zaman root olmak istediğinizi sanıp sizden root şifresini ister.

(Toplam: 35, Bugün: 1 )

Leave a reply:

Site Footer