Linux Unix

Linux Sistemlerde Kullanıcı ve Grup Yönetimi

 

Unix&Linux sistemlerde gerçek kişiler, yöneticiler ve sistemlerde yer alan uygulamalar için sistem üstünde kullanıcı tanımlamak gerekli. Gruplarda sistemlerde kullanıcıları mantıksal olarak kümelemek ve o kümelere belli yetkileri vermek için kullanılır. Her sistem kullanıcısının eşsiz(unique) userid (UID)’si ve her grubunda eşsiz(unique) groupid (GID) ‘si olmak zorundadır. Kurumsal sistemlerde çalışırken şirket politikası gereği dikkat edilmesi gerekenler;

 

 

  1. Hangi sistemlerde hangi ekiplerin, hangi ekip üyeleri olmalı.Yani development,test,production ortamlarına göre kullanıcı şablonları çıkartılmalı.
  2. Sistemlerde kullanıcı oluştururken şifre ve erişim politikası ne olmalı.Şifreler değişecek mi,kim nasıl saklayacak ve bunlara erişim hangi izinlere tabi olacak.
  3. Kullanıcı ve grup problemleriyle kim ilgilenecek.
  4. Sisteme direk root girişi veya uygulama kullanıcısı girişi engellenecek mi? Audit mekanizması için bir program mı bulunacak ya da lokalde bir program mı yapılacak.

 

 

Eğer bunlara dikkat edilirse yönetilebilir bir ortam oluşturmuş olursunuz, sistem yöneticisi olan ve olmaya niyetli arkadaşlara şiddetle tavsiye ederiz bu adımları.

 

 

Redhat ailesinde dolayısıyla CentOS’da da kullanıcı ve grup işlemlerini 2 şekilde halledebiliyoruz.

 

 

  1. Ara yüzden,konsolda komut satırında system-config-users diyerek gelen menüde(User Manager) işlemlerimize devam edebiliriz.
  2. Useradd,userdel,usermod,groupadd,groupdel,groupmodgibi komutlarla komut satırından.

 

 

Şimdi sırasıyla iki şekilde de sisteme kullanıcı ve grup tanımlayacağız ardından, bu işlemleri yaparken önemli sistem dosyaları nelerdir onları inceleyeceğiz.

 

 

User Manager

 

Öncelikle sistemde system-config-users programcığının yüklü olması(RPM paketi olmalı)

 

 

[root@artemis ~]# rpm -qa|grep system-config-users à bahsettiğimiz paketin sistemimizde yüklü olup olmadığına baktık.

 

 

system-config-users-1.2.51-4.el5

 

 

ve sizin yetkili bir kullanıcı olmanız gerekli yani root.

 

(Eğer secureCRT veya Putty gibi programlarla Vmware üstünden değilde uzaktan(ssh,telnet) bağlanmış iseniz lokalinizde de X Windows server çalışması gerekli unutmayınız.)

 

 

 

image001

 

 

 

Biz CentOS masaüstünde sağ klik,gelen menüden “Konsole”,konsolda da system-config-users dedik. Sisteme cozumpark kullanıcısı ile bağlandığımız için bize root kullanıcısının şifresini

Sordu. Root şifresini girip “OK” ile devam ediyoruz. Karşımıza “User Manager “gelecek.

 

 

 

image002

 

 

 

Gördüğünüz gibi rahatlıkla herhangi bir yardıma ihtiyaç duymayacak şekilde kullanabileceğiniz basit bir ara yüz geldi.

 

BILGILENDIRME!:Redhat ailesinde sistem kullanıcıları bu ekranda gelmiyor,eklemek için Edit > Preferences kısmında “Hide system users and groups” u uncheck hale getirmeniz gerekli.


UYARI!: Sistem kullanıcılarının User ID ‘leri (UID) 500 ‘ün altındadır,dolayısıyla sizin oluşturacağınız yeni kullanıcılara 1-499 arasında bir user ID ‘si verMEmeniz tavsiye edilir.

 

 

Ara Yüzden Kullanıcı Ekleme,Değiştirme,Silme

 

 

 

image003

 

 

 

“Add User” dedikten sonra User Name kısmına sisteme Login olurken kullanılacak ismi,Password kısmına şifreyi,Shell kısmına standart olarak /bin/bash seçip, kullanıcının EV dizinin ayarlayıp (/home/bilgipark),eğer kullanıcının grubunu ve user ID’sini vermek isterseniz,sırasıyla “Create a private group for the user” checkli halde,501 vererek “OK” dedik.

 

 

 

image004

 

 

 

Eğer var olan bir kullanıcının diğer bilgilerini değiştirmek istiyorsanız listeden kullanıcıyı seçip “Properties” kısmına tıklayarak gelen menüde işlem yapmanız gerekir.

 

 

 

image005

 

 

 

User Data: Kullanıcıyı eklerken kullandığımız bilgiler.

 

Account Info: Belirli bir gün sonra bu kullanıcı hesabının süresinin dolmasını istiyorsanız veya kullanıcıyı sisteme geçici bir süreliğine lock ‘ layacaksınız.

 

Password Info: Kullanıcının şifresini belirli bir günden sonra değiştirmesi için zorlamak,değiştirme öncesi uyarmak gibi işlemler.

 

Groups: Kullanıcının Primary (birincil) grubunu ve diğer Secondary(ikincil) gruplarını değiştirmek için kullanılır.

 

 

Örnek;

 

 

 

image006

 

 

 

Kullanıcıyı silmek için, kullanıcı listesinden silinecek kullanıcıyı seçip “Delete” demeniz yeterli. Kullanıcıyı silerken ev dizinini, eğer varsa maillerini ve varsa ona ait olan bütün geçici dosyaları Sistemden siler.

 

 

 

image007

 

 

Ara Yüzden Grup Ekleme,Değiştirme,Silme

 

Ara yüzden grup eklemek için “Add Group” tıklanır. “Create New Group” ekranı gelir. Burada grup ismi ve group ID (GID)’si verilir OK ile devam edilir.

 

 

 

image008

 

 

 

Eklenmiş olan bir grubun özelliklerini değiştirmek istiyorsak yine ,grubu seçerek “Properties” denir,gelen ekranda .

 

 

 

image009

 

 

 

Group Data: Bu kısımda grup ismini tekrar değiştirebiliriz.

 

Group Users: Bu gruba sistemde yer alan kullanıcılardan ekleme yapabiliriz. Biz bilgipark ve cozumpark kullanıcılarını az önce oluşturduğumuz yonetici grubuna dahil ettik.

 

Sistemden grup silmek isterseniz silinecek grubu seçip “Delete” demek yeterli fakat silinecek grup sistemde bulunan herhangi bir kullanıcının primary group’u ise grubu silebilmeniz için O kullanıcının primary’i group’unu değiştirmeniz gerekir ve size aşağıdaki gibi bir uyarı verir. Bir kullanıcıyı grupsuz bırakmak istemezsiniz herhalde.

 

 

 

image010

 

 

 

Bizim sisteme eklediğimiz cozumpark ve bilgipark kullanıcılarının primary grupları yine kendi isimleriyle. Groups tabında gördüğünüz gibi.

 

İkisininde Secondary group’u yonetici grubu yapmıştık. Yonetici grubunu silmek istersek bizden sadece bir doğrulama isteyecek ve “YES” dediğimizde silebileceğiz.

 

 

 

image011

 

 

 

Komut satırında Kullanıcı ve Grup İşlemleri

 

Komut Satırından Kullanıcı Ekleme,Değiştirme,Silme

 

Useradd, usermod; Kullanıcı ekleme işlemlerini useradd, özellik değiştirmeyi usermod komutlarıyla hallediyoruz. Useradd ve usermod komutları için verilen seçenekler aşağı yukarı aynıdır,ikisi içinde ilk seçenekler tablosunu kullanabilirsiniz,usermod komutu için 2. Seçenekler tablosu ek özellikler vermektedir.

 

Useradd [seçenekler] kullanıcı_ismi

Usermod [seçenekler] kullanıcı_ismi

 

 

 

Seçenekler

Açıklama

-b, –base-dir BASE_DIR

Satır Sayılarını gösterir.

-c, –comment COMMENT

Kullanıcı hakkında detay bilgi,yorum

-d, –home-dir HOME_DIR

Kullanıcının ev dizini belirtilir.

-e, –expiredate EXPIRE_DATE

Kullanıcı hesabının geçersiz olma zamanı. YYYY-MM-DD formatında olacak.

-f, –inactive INACTIVE

Şifre süresi bittikten sonra kullanıcı hesabının ne kadar sürede geçersiz olacağını belirtir.
0 -> şifre süresi dolarsa hesap hemen geçersiz olur,
-1 -> şifre süresi dolsa da hesap geçersiz hale gelmez.

-g, –gid GROUP

Kullanıcının primary grup ismi burada verilir.

-G, –groups GROUPS

Kullanıcının secondary grup isimleri burada verilir.

-h, –help

Komut hakkında yardım almak için.

-m, –create-home

Kullanıcının –d seçeneği ile verilen ev dizini oluşturulsun demektir.

-s, –shell SHELL

Kullanıcının shell’i. Linux sistemlerde genellikle standart olarak /bin/bash olarak verilir.

-u, –uid UID

Kullanıcının user ID’si denilen eşsiz sistem kimlik numarası. >500 olmalıdır.

 

Usermod komutu için ek seçenekler

Seçenekler

Açıklama

-l, –login NEW_LOGIN

Kullanıcının LOGIN ismi için farklı bir ifade verilmesi

-L, –lock

Kullanıcı hesabına kilit konulması.

-m, –move-home

Kullanıcının ev dizinini başka bir yere taşımak için.

-U, –unlock

Kullanıcı hesabındaki kilidi kaldırmak için.

 

 

Sisteme kullanıcı eklemek için ara yüzde olduğu gibi konsolda da sistem yetkili kullanıcısı olan root’a geçiş yapmamız gerekmekte.

Cozumpark kullanıcısından “su –“ dedik, root şifresini verdik ve root’a geçtik. Az önce GUI üstünden yaptığımız işlemi komut satırından yapıyoruz, bilgipark kullanıcısı ve grubunu ekledik.

 

Örnek;


[cozumpark@artemis ~]$ su –

Password:

[root@artemis ~]#

[root@artemis ~]# groupadd -g 501 bilgipark

[root@artemis ~]# useradd -c “cozumpark sistem admin” -d /home/bilgipark -g bilgipark -m -s /bin/bash -u 501 bilgipark

[root@artemis ~]#

[root@artemis ~]# id bilgipark

uid=501(bilgipark) gid=501(bilgipark) groups=501(bilgipark)

 


UYARI!:
Sisteme kullanıcı eklemeden önce kullanıcı grubunun,isminin ve ID’sinin uygunluğunu kontrol etmeniz gerekir.


Biz bilgipark kullanıcısının primary grubunu yine bilgipark yapmak için kullanıcı eklemeden önce mecburen groupadd komutuyla grubunu sisteme eklemiş bulunduk.

 

UYARI!:Kullanıcıyı oluşturduktan sonra passwd kullanıcı_ismi komutu ile şifre vermeyi unutmayınız! Yoksa kullanıcı sisteme login olamaz.

 

CentOS Linux sistemlerde kullanıcı bilgileri /etc/passwd , grup bilgileri /etc/group,şifre ve diğer bilgiler /etc/shadow, kullanıcılarla ilgili genel standart bilgiler /etc/login.defs dosyalarında bulunur. Ara yüzden ve komut satırından işlem yaparken her ikisi de bu ilk üç dosyayı editlemektedir. Eğer yeni oluşturduğumuz bilgipark kullanıcısı için bu dosyaları grep’lersek aşağıdaki örneğe bakalım.

 

Örnek;

 

[root@artemis ~]# cat /etc/passwd|grep bilgipark

bilgipark:x:501:501:cozumpark sistem admin:/home/bilgipark:/bin/bash

[root@artemis ~]# cat /etc/group|grep bilgipark

bilgipark:x:501:

[root@artemis ~]# cat /etc/login.defs|grep USERGROUPS_ENAB — > Eğer login.defs dosyasındaki bu seçenek YES ise kullanıcı eklenirken –g grup_ismi açıkça verilmezse sistem otomatik olarak kullanıcı ismiyle aynı olan bir grup oluşturup yeni oluşturduğumuz kullanıcıyı o gruba üye yapar.

USERGROUPS_ENAB yes

[root@artemis ~]# cat /etc/shadow|grep bilgipark à kullanıcıya şifre vermez isek isimden sonra !! işaretinin geldiğini görürsünüz

bilgipark:!!:15228:0:99999:7:::

[root@artemis ~]# passwd bilgipark

Changing password for user bilgipark.

New UNIX password:

BAD PASSWORD: it is too simplistic/systematic

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@artemis ~]#

[root@artemis ~]# cat /etc/shadow|grep bilgipark à kullanıcıya şifre verdikten sonra !! işaretinin kriptolanmış şifresini görürsünüz

bilgipark:$1$0Ofzhd2c$GWx0fJTIR4mxVtxx8izkn.:15228:0:99999:7:::

[root@artemis ~]#

 

 

Örnek;

 

[root@artemis ~]# usermod -l silgipark bilgipark — > bilgipark kullanıcısının ismini silgipark’a çevirdik

[root@artemis ~]#

[root@artemis ~]# id bilgipark — > id kullanıcı_ismi komutuyla baktığımızda eski ismiyle sistemde olmadığını gördük

id: bilgipark: No such user

[root@artemis ~]#

[root@artemis ~]# id silgipark

uid=501(silgipark) gid=501(bilgipark) groups=501(bilgipark)

[root@artemis ~]# ls -l /home

total 12

drwx—— 4 silgipark bilgipark 4096 Sep 12 20:46 bilgipark

drwx—— 21 cozumpark cozumpark 4096 Sep 12 20:26 cozumpark

[root@artemis ~]# usermod -l bilgipark silgipark — > değişikliği geri alalım

[root@artemis ~]# usermod -L bilgipark –> kullanıcının hesabına LOCK koyalım,bu LOCK “/etc/shadow” dosyasına şifrenin(ikinci blokta encrypted halde) başına ! (ünlem) işareti gelerek belli olacak.

[root@artemis ~]#

[root@artemis ~]# cat /etc/shadow|grep bilgipark

bilgipark:!$1$oW7lx0wO$zlu9ZvtoVHTchvRokheQP.:15229:0:99999:7:::

[root@artemis ~]#

[root@artemis ~]# usermod -U bilgipark –> Koyduğumuz LOCK’ı kaldıralım.

[root@artemis ~]#

[root@artemis ~]# cat /etc/shadow|grep bilgipark

bilgipark:$1$oW7lx0wO$zlu9ZvtoVHTchvRokheQP.:15229:0:99999:7:::

 

 

Userdel; Kullanıcıları silmek içinde “userdel” komutunu kullanıyoruz.

 

Userdel [seçenekler] kullanıcı_ismi

 

Seçenekler

Açıklama

-f, –force

Kullanıcıyı kökten kazır,sisteme login olsa da,kendi adına sistemde grubu olsa da,o gruba başka biri üye olsa da.. Velhasıl tavsiyemiz bu seçeneği kullanırken dikkatli olun.

-r, –remove

Kullanıcının Ev dizini ve mail spool’u silinecek.

-h, –help

Komut yardımını listeler.

 

 

Şimdi az önce eklediğimiz bilgipark kullanıcısını sistemden –r seçeneği ile silelim.

 

UYARI!: Sistemde kullanıcıyı –r seçeneğiyle silseniz dahi farklı farklı yerlerde o kullanıcıya ait dosyalar kalmış olabilir.Eğer bunlardan da kurtulmak istiyorsanız,o kullanıcıyı silmeden önce , sistemin içinde o kullanıcıya ait bütün dosyaları find komutu ile aratarak listelemek sizin için daha faydalıdır. Nasıl yapıldığını görmek için bir önceki makalede yer alan örneklere bakabilirsiniz.

 

Örnek;

 

[root@artemis ~]# cat /etc/passwd|grep bilgipark

bilgipark:x:501:501:cozumpark sistem admin:/home/bilgipark:/bin/bash

[root@artemis ~]#

[root@artemis ~]# ls -ld /home/bilgipark

drwx—— 5 bilgipark bilgipark 4096 Oct 10 00:55 /home/bilgipark

[root@artemis ~]#

[root@artemis mail]# ls -l /var/spool/mail/bilgipark

-rw-rw—- 1 bilgipark mail 0 Sep 12 21:35 /var/spool/mail/bilgipark

[root@artemis]#

[root@artemis]# userdel -r bilgipark

[root@artemis]#

[root@artemis]#

[root@artemis]# id bilgipark

id: bilgipark: No such user

[root@artemis]#

[root@artemis]# ls -ld /home/bilgipark — > bilgipark ‘in ev dizini de –r seçeneği ile silinmiş oldu.

ls: /home/bilgipark: No such file or directory

[root@artemis]#

[root@artemis]# cat /etc/passwd|grep bilgipark

[root@artemis]#

[root@artemis]#

[root@artemis]# ls -l /var/spool/mail/bilgipark

ls: /var/spool/mail/bilgipark: No such file or directory

[root@artemis]#

[root@artemis ~]# cat /etc/login.defs|grep USERGROUPS_ENAB — > Eğer login.defs dosyasındaki bu seçenek YES ise silinen kullanıcının ait olduğu grubu da siler eğer o grupta başka kullanıcı yok ise.

USERGROUPS_ENAB yes

[root@artemis mail]# cat /etc/group|grep bilgipark — > ama bizim o grupta başka kullanıcılarımızda olduğu için bilgipark grubunu sistem silmedi.

bilgipark:x:501:hayal1,hayal2

 

 

 

Komut Satırından Grup Ekleme, Değiştirme, Silme

 

 

Groupadd, groupmod;Grup eklemeyi “groupadd”,özelliğini değiştirmeyi “groupmod” komutuyla hallediyoruz.

 

 

groupadd [seçenekler] grup_ismi

groupmod [seçenekler] grup_ismi

 

 

 

Seçenekler

Açıklama

-f

Eğer eklenmek istenen grup /etc/group dosyasına mevcut ise,komut hata almadan çıkar.

-r

Sisteme sistem hesabı eklenmek istendiğinde bu seçeneğin kullanılması zorunlu.Yani ID leri <499 olacak hatırlarsanız.

-g GID

Eklenmek istenen grubun group ID’si (GID)

-h, –help

Komut yardımını listeler.

-n new_group_name –> groupmod komutu için!!!

Groupmod komutu ile var olan bir grubun ismi değiştirilmek istendiğinde –n ile beraber yeni grup ismi verilir.

 

 

Örnek;

 

 

[root@artemis ~]# groupadd -g 501 bilgipark

[root@artemis ~]# cat /etc/group|grep bilgipark

bilgipark:x:501:

[root@artemis ~]#groupmod -n cinipark bilgipark

[root@artemis ~]# cat /etc/group|grep park

cozumpark:x:500:

yonetici:x:502:cozumpark

cinipark😡:501:

 

 

Groupdel; Grup silme işlemini “groupdel” komutuyla yapıyoruz.

 

UYARI-1!: Sistemde bir grubu silseniz dahi farklı farklı yerlerde o gruba ait dosyalar kalmış olabilir.Eğer bunlardan da kurtulmak istiyorsanız,o grubu silmeden önce , sistemin içinde o gruba ait bütün dosyaları find komutu ile aratarak listelemek sizin için daha faydalıdır. Nasıl yapıldığını görmek için bir önceki makalede yer alan örneklere bakabilirsiniz.

 

UYARI-2!: Eğer sistemde primary grubu sizin silmek istediğiniz grup ile aynı olan kullanıcı varsa o grubu silemezsiniz dolayısıyla, o kullanıcının primary grubunu “usermod” –g seçeneği ile başka bir gruba değiştirip sonra o grubu silmeniz gerekir.

 

groupdel grup_ismi

 

Örnek;

 

[root@artemis ~]# cat /etc/group|grep cinipark

cinipark😡:501:

[root@artemis ~]# groupdel cinipark

[root@artemis ~]#

[root@artemis ~]# cat /etc/group|grep cinipark

[root@artemis ~]#

 

 

Kullanıcı ve Grup İşlemlerinde Önemli Sistem Dosyaları

 

/etc/passwd Dosyası

 

Linux sistemlerde genel olarak kullanıcı bilgileri /etc/passwd dosyasında tutulur. Bütün kullanıcılar tarafından okunabilir,ama sadece root tarafında değiştirilebilir.Bilgipark kullanıcısı tekrar sisteme ekleyip /etc/passwd dosyasını greplersek;

 

[root@artemis ~]# groupadd -g 501 bilgipark

[root@artemis ~]# useradd -c “cozumpark sistem admin” -d /home/bilgipark -g bilgipark -m -s /bin/bash -u 501 bilgipark

[root@artemis ~]# id bilgipark

uid=501(bilgipark) gid=501(bilgipark) groups=501(bilgipark)

[root@artemis ~]#

[root@artemis ~]# passwd bilgipark

Changing password for user bilgipark.

New UNIX password:

BAD PASSWORD: it is too simplistic/systematic

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

 

 

[root@artemis ~]# cat /etc/passwd|grep bilgipark

bilgipark:x:501:501:cozumpark sistem admin:/home/bilgipark:/bin/bash

 

 

Gördüğünüz gibi değerler : “colon” ile birbirinden ayrılmıştır. Komutla eklemiş olduğumuz özellikler aslında buraya sırasıyla işlenmiş durumda.


Açıklamaları ve kolonların ne olduğunu aşağıdaki resme bakarak da kolayca anlamış olduğunuzu umuyorum.

 

 

image012

 

 

/etc/group Dosyası

 

Linux sistemlerde genel olarak grup bilgileri /etc/group dosyasında tutulur. Bütün kullanıcılar tarafından okunabilir,ama sadece root tarafında değiştirilebilir.Bilgipark kullanıcısının grubu için /etc/group dosyasını girersek

;

[root@artemis ~]# cat /etc/group|grep bilgipark

 

bilgipark:x:501:

 

Bu dosyada da değerler birbirinden : (colon) ile birbirinden ayrılmıştır. Gruba üye olan kullanıcılar aynı satırda yer alır ve birbirinden “,” ile ayrılarak listelenir.

 

 

image013

 

 

Örnek;

 

[root@artemis ~]# useradd hayal1

[root@artemis ~]# useradd hayal2

[root@artemis ~]#

[root@artemis ~]#

[root@artemis ~]# usermod -G bilgipark hayal1

[root@artemis ~]# usermod -G bilgipark hayal2

[root@artemis ~]#

[root@artemis ~]# cat /etc/group|grep bilgipark — > Burada bilgipark grubuna hayal1 ve hayal2 kullanıcılarını üye yaptığımızı görüyoruz.

bilgipark:x:501:hayal1,hayal2

 

 

/etc/shadow Dosyası

 

Kullanıcını şifresi ve şifre ile ilgili bilgiler /etc/shadow dosyasında tutulur,şifre encrypted haldedir.Dosyayı sadece root kullanıcısı okuyabilir,başka kimse okuyamaz.Ayrıca dosyayı sistem kendisi editler

 

Root kullanıcısının da dokunmasını istemez.

 

 

[root@artemis ~]# cat /etc/shadow | grep bilgipark

bilgipark:$1$.LPc5Idp$0pdayFoyejLjR5p0B4tiR1:15229:0:99999:7:::

 

 

 

Peki bu çıktıyı nasıl yorumlamak gerekir diyorsanız,aşağıdaki resimde numaralandırılmış ve ilgili açıklamaları yapılmış kısımları takip edelim.

 

 

 

image014

 

 

 

  1. Kullanıcını ismi
  2. Kullanıcının encrypted şifresi
  3. En son şifre değiştirilme tarihi (Last password change (lastchanged)). Unix&Linux sistemlerde tarih 1 ocak 1970’den itibaren başlar.
  4. Minumum,Kullanıcının şifresini değiştirebilmesi için geçmesi gereken gün sayısıdır,eğer -1 ise önemi yoktur,süre kısıtlanmamıştır.
  5. Maximum,Şifreyi kullanma süresi,eğer 99999 ise önemi yoktur,süre kısıtlanmamıştır.
  6. Warn,kullanıcını şifresini değiştirme tarihine yaklaşmadan kaç gün önce uyarı verilecek, -1 ise önemi yoktur,uyarı verilmeyecektir.
  7. Inactive,kullanıcı şifresini değiştirme tarihi geçtikten sonra hala şifre değişmemiş ise ,kullanıcıyı pasif hale çekmek için gün sayısı,-1 ise önemi yoktur,pasifleştirme uygulanmayacaktır.
  8. Expire,kullanıcı hesabı ne zaman sona ereceği bilgisini tutar.Gün bilgisi yine 1 Ocak 1970 tarihinden itibarendir.

 

 

Peki kullanıcıların şifre değiştirme,kullanım süresi ayarlama ve uyarı işlemlerini nasıl yapacağız? Burada “passwd” ve “chage” komutu yardımımıza koşuyor.Şimdi bu komutları inceleyelim.

 

Passwd; Unix&Linux Sistemlerde şifrenizi değiştirmek için passwd komutunu kullanacaksınız. Siz sisteme bağlı iken konsola passwd komutunu verdikten sonra kendi şifrenizi değiştirebilirsiniz. Root kullanıcısı ise kendi şifresi dahil olmak üzere,sistemde olan diğer bütün kullanıcıların şifresini değiştirebilir.Ama var olan şifrelerin ne olduğunu göremez.Görmesine gerek yok çünkü Unix&Linux sistemlerde bir kişi Root ise sistemde aklınıza gelebilecek her şeyi yapabilir.

 

 

Not: Şifrenin kalitesi yani güçlülüğü ile ilgili isterseniz sınırlandırma koyabilirsiniz.Bunun çeşitli yöntemleri mevcut.

 

İleriki makalelerde göreceğiz.

 

 

passwd [seçenekler] kullanıcı_ismi

 

 

Seçenekler

Açıklama

-d, –delete

Kullanıcının şifresini siler.Kullanıcı sisteme login olamaz.shadow dosyasına ilgili alan boş gözükür.

-l, –lock

Kullanıcıyı kilitler.Kullanıcı sisteme login olamaz.

-u, –unlock

Kullanıcının kilidini kaldırır.

-f, –force

Herhangi bir işlem yapmadan önce ne olursa olsun sistemi işlemin yapılması için zorlar.

-x, –maximum=DAYS

Şifrenin en çok kullanım süresi, kullanıcı bu günden sonra şifresini kullanamaz.

-n, –minimum=DAYS

Şifrenin en az kullanım süresi,kullanıcı bu günden önce şifresini değiştiremez.

-w, –warning=DAYS

Şifre değiştirilme zamanı gelmeden kaç gün önce uyarı verilecek.

-i, –inactive=DAYS

Kullanıcı hiç login olmadan veya şifresini bir şekilde kullanmadan kaç gün geçerse hesabı lock’ lanacak.

-S, –status

Kullanıcının şifre durumları.

 

 

Örnek;

 

 

[root@artemis ~]# passwd -l bilgipark

Locking password for user bilgipark.

[root@artemis ~]#

[root@artemis ~]#

[root@artemis ~]# passwd -S bilgipark

bilgipark LK 2011-09-12 0 99999 7 -1 (Password locked.)

[root@artemis ~]# cat /etc/shadow|grep bilgipark

bilgipark:!!$1$.LPc5Idp$0pdayFoyejLjR5p0B4tiR1:15229:0:99999:7:::

 

 

[root@artemis ~]# passwd -u bilgipark

Unlocking password for user bilgipark.

passwd: Success.

[root@artemis ~]#

[root@artemis ~]# passwd -S bilgipark

bilgipark PS 2011-09-12 0 99999 7 -1 (Password set, MD5 crypt.)

 

 

[root@artemis ~]# passwd -x 250 -n 10 -w 1 bilgipark

Adjusting aging data for user bilgipark.

passwd: Success

[root@artemis ~]#

[root@artemis ~]# passwd -S bilgipark

bilgipark PS 2011-09-12 10 250 1 -1 (Password set, MD5 crypt.)

 

 

[root@artemis ~]# passwd -d bilgipark

Removing password for user bilgipark.

passwd: Success

[root@artemis ~]#

[root@artemis ~]# passwd -S bilgipark

bilgipark NP 2011-09-12 10 250 1 -1 (Empty password.)

[root@artemis ~]#

[root@artemis ~]#

[root@artemis ~]# cat /etc/shadow|grep bilgipark

bilgipark::15229:10:250:1:::

[root@artemis ~]# ssh bilgipark@localhost

bilgipark@localhost’s password:

Permission denied, please try again.

bilgipark@localhost’s password:

Permission denied, please try again.

 

 

[root@artemis ~]# passwd bilgipark

Changing password for user bilgipark.

New UNIX password:

BAD PASSWORD: it is too simplistic/systematic

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

 

 

Chage; Chage komutu passwd komutuna göre daha özelleşmiş durumda, sadece şifre yaşlandırma politikası ile ilgili işlemler mevcut.

 

chage [seçenekler] kullanıcı_ismi

 

 

 

Seçenekler

Açıklama

-d, –lastday LAST_DAY

Şifrenin son değiştirilme tarihi.

-E, –expiredate EXPIRE_DATE

Şifrenin süresinin dolma tarihi. Formatı YYYY-MM-DD halinde olacaktır.

-I, –inactive INACTIVE

Kullanıcı hiç login olmadan veya şifresini bir şekilde kullanmadan kaç gün geçerse hesabı lock’ lanacak.

-l, –list

Kullanıcı hesabının şifre yaşlanma bilgileri.

-m, –mindays MIN_DAYS

Şifrenin en az kullanım süresi,kullanıcı bu günden önce şifresini değiştiremez.

-M, –maxdays MAX_DAYS

Şifrenin en çok kullanım süresi, kullanıcı bu günden sonra şifresini kullanamaz.

-W, –warndays WARN_DAYS

Şifre değiştirilme zamanı gelmeden kaç gün önce uyarı verilecek.

 

 

Örnek;

 

[root@artemis ~]# chage -l bilgipark

Last password change : Sep 12, 2011

Password expires : May 19, 2012

Password inactive : never

Account expires : never

Minimum number of days between password change : 10

Maximum number of days between password change : 250

Number of days of warning before password expires : 1

 

 

[root@artemis ~]# chage -E “2011-12-31” bilgipark

[root@artemis ~]#

[root@artemis ~]# chage -l bilgipark

Last password change : Sep 12, 2011

Password expires : May 19, 2012

Password inactive : never

Account expires : Dec 31, 2011

Minimum number of days between password change : 10

Maximum number of days between password change : 250

Number of days of warning before password expires : 1

[root@artemis ~]# cat /etc/shadow|grep bilgipark

bilgipark:$1$zHAShkVN$penEfqD3.RdeLST/oyCuH.:15229:10:250:1::15339:

 

 

[root@artemis ~]# chage -I -1 -m 0 -M 99999 -E -1 bilgipark — > eğer bu kısıtlamalarla uğraşmak istemiyorsanız kullanıcı ismini seçip bu komutu girmeniz yeterli.

[root@artemis ~]#

[root@artemis ~]# chage -l bilgipark

Last password change : Sep 12, 2011

Password expires : never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 1

 

 

Kullanıcı İşlemlerinde Faydalı Ek Komutlar

 

 

w; Unix&Linux sistemlerde kimin login olduğu ve ne yaptığı bilgisini gösterir.

 

Aşağıdaki örnekte gördüğünüz çıktıdaki kolonları bu tabloya göre değerlendirebiliriz.

 

 

 

User

TTY

FROM

LOGIN

IDLE

JCPU

PCPU

WHAT

Kullanıcının İsmi

Kullanıcının sisteme hangi konsolda bağlı olduğu(0 ise arayüzden,
pts/x ise x numaralı konsoldan)

Kullanıcı eğer sisteme arayüzden bağlı ise :0 ile , remote konsoldan bağlı ise IP si verilerek gösterilir.

Ne zaman sisteme login olduğu bilgisi

Hiçbir iş yapılmadan geçirilmiş süre,eğer konsolda bir iş yapmıyorsanız idle süresi giderek artar.Fakat aktif bir kullanıcı var ise idle süresi düşüktür.

Bağlı olunan konsalda çalışan programların CPU çalıştırma süreleri

What alanında gözüken/çalışan programın CPU çalıştırma süresi

Şu an kullanıcı ne yapıyor,ne çalıştırıyor.Eğer bir program çalıştırıyorsa o programın Path’i gözükür,sadece bağlı ise bağlı olduğu shell bilgisi gözükür.

 

Örnek;

 

[root@artemis ~]# w

17:37:00 up 59 min, 6 users, load average: 0.00, 0.00, 0.00

USER     TTY         FROM   LOGIN@ IDLE JCPU PCPU WHAT

root                       :0            –              16:39     ?xdm? 31.05s     0.05s      /bin/sh /usr/bin/startkde

root                       pts/1     :0            16:40     56:59     0.00s      0.26s      kded –new-startup

root                       pts/2     :0            16:40     2:25        0.14s      0.14s      /bin/bash

root                       pts/3     192.168.0.107 17:35         0.00s      0.02s       0.00s     w

cozumpar            pts/4     192.168.0.107 17:36         43.00s   0.02s      0.02s      -bash

bilgipar                 pts/5      192.168.0.107 17:36        24.00s   0.02s      0.02s      -bash

 

 

who; Unix&Linux sistemlerde kimin login olduğu bilgisi yanında ek seçeneklerle farklı bilgiler veren bir komuttur.

 

who [seçenekler]

 

 

Seçenekler

Açıklama

-a, –all

Bütün seçenekleri kullanmak için kullanılır.

-b, –boot

Sistemin en son ne zaman boot ettiği bilgisini gösterir.

-m

Komutu çalıştıran kişinin hangi terminalden ve hangi ipden ne zaman login olduğu bilgisini gösterir.

-p, –process

İnit pid=1 process’i tarafından başlatılan process’leri listeler.Yani sistemi sırasıyla açan ilk process olan init process’in başlattığı ve halen çalışan diğer processler.

-q, –count

Sisteme login olmuş kullanıcıların isimlerini ve toplam sayıyı verir.

-r, –runlevel

Sistemin çalışma seviyesini gösterir.

-t, –time

Sistemin saatinin en son değiştirildiği vakit.

-u, –users

Sisteme bağlı olan kullanıcıları listeler.

 

 

Örnek;

 

[root@artemis ~]# who -b

system boot 2011-10-09 16:38

[root@artemis ~]# who -q

root root root root cozumpark bilgipark

# users=6

[root@artemis ~]# who -r

run-level 5 2011-10-09 16:38 last=S

[root@artemis ~]# who -t

[root@artemis ~]#

[root@artemis ~]# who -u

root :0 2011-10-09 16:39 ? 4340

root pts/1 2011-10-09 16:40 02:05 4470 (:0)

root pts/2 2011-10-09 16:40 01:11 4527 (:0)

root pts/3 2011-10-09 17:35 . 6412 (192.168.0.107)

cozumpark pts/4 2011-10-09 17:36 00:45 6511 (192.168.0.107)

bilgipark pts/5 2011-10-09 17:36 01:09 6544 (192.168.0.107)

[root@artemis ~]#

 

 

Lastlog; Kullanıcıların sisteme en son ne zaman login olduğu bilgisini tutan bilgiyi gösterir.

Hiç login olmayan kullanıcı için “Never logged inbilgisini,login olmuş kullanıcı için ise en son login tarihini verir.

 

 

Örnek;

 

 

[root@artemis ~]# lastlog

Username Port From Latest

root pts/3 192.168.0.107 Sun Oct 9 17:35:00 +0300 2011

bin **Never logged in**

daemon **Never logged in**

adm **Never logged in**

lp **Never logged in**

sync **Never logged in**

shutdown **Never logged in**

halt **Never logged in**

mail **Never logged in**

news **Never logged in**

uucp **Never logged in**

operator **Never logged in**

games **Never logged in**

gopher **Never logged in**

ftp **Never logged in**

nobody **Never logged in**

nscd **Never logged in**

vcsa **Never logged in**

ntp **Never logged in**

pcap **Never logged in**

dbus **Never logged in**

avahi **Never logged in**

rpc **Never logged in**

mailnull **Never logged in**

smmsp **Never logged in**

sshd **Never logged in**

oprofile **Never logged in**

xfs **Never logged in**

rpcuser **Never logged in**

haldaemon **Never logged in**

avahi-autoipd **Never logged in**

gdm **Never logged in**

sabayon **Never logged in**

cozumpark pts/4 192.168.0.107 Sun Oct 9 17:36:13 +0300 2011

bilgipark pts/5 192.168.0.107 Sun Oct 9 17:36:28 +0300 2011

hayal1 **Never logged in**

hayal2 **Never logged in**

 

 

finger;Kullanıcı bilgilerini sistemden sorgulama programıdır. Güvenlik olarak açıkları bulunmuştur. Sistemden binary’lerinin kaldırılması eğer servisi varsa pasif hale getirilmesi

tavsiye edilir.

 

 

[root@artemis ~]# finger cozumpark

Login: cozumpark Name: cozumpark user

Directory: /home/cozumpark Shell: /bin/bash

On since Sun Oct 9 17:36 (EEST) on pts/4 from 192.168.0.107

48 minutes 50 seconds idle

No mail.

No Plan.

 

 

Login: bilgipark Name: cozumpark sistem admin

Directory: /home/bilgipark Shell: /bin/bash

On since Sun Oct 9 17:36 (EEST) on pts/5 from 192.168.0.107

1 hour 11 minutes idle

No mail.

No Plan.

 

 

Wall; Sisteme login olmuş kullanıcılara genel bir mesaj göndermek için kullanılır. Genelde sistemde diğer kullanıcıları etkileyecek bir değişiklik yapılacaksa,bu değişikliği haber vermek için tercih edilir.

wall [mesaj]

 

 

//***********root kullanıcısının shell’i**********************************//

[root@artemis ~]# wall selam

 

 

Broadcast message from root (pts/3) (Sun Oct 9 19:16:12 2011):

 

 

selam

[root@artemis ~]#

 

 

//*********paralelde cozumpark kullanıcısının shell’i**********************//

[cozumpark@artemis ~]$

Broadcast message from root (pts/3) (Sun Oct 9 19:16:12 2011):

 

 

selam

 

 

[cozumpark@artemis ~]$

 

//*********paralelde bilgipark kullanıcısının shell’i**********************//

[bilgipark@artemis opt]$

Broadcast message from root (pts/3) (Sun Oct 9 19:16:12 2011):

 

 

selam

 

 

[bilgipark@artemis opt]$

 

Write; Sisteme login olmuş kullanıcılar arasında mesajlaşma yapmak için kullanılır.who komutundan kullanıcıların konsol bilgileri çekildikten sonra istenilen kullanıcıya mesaj gönderilebilir.

 

 

//***********root kullanıcısının shell’i********************************//

[root@artemis ~]# write bilgipark pts/5

merhaba bilgipark

nasilsiniz efendim?

 

 

//*********paralelde bilgipark kullanıcısının shell’i**********************//

[bilgipark@artemis opt]$

 

 

Message from root@artemis on pts/3 at 19:25 …

merhaba bilgipark

nasilsiniz efendim?

 

 

Last,lastb; Sisteme başarılı ve başarısız login olma durumlarını listeler.

Last komutu /var/log/wtmp dosyası var ise, bu dosyadan sisteme komutun çalıştırıldığı ana kadar login olmuş bütün kullanıcıları çeker.

Lastb komutu /var/log/btmp dosyası var ise,bu dosyada sisteme login olma girişimi başarısız olmuş kullanıcı bilgilerini çeker.

Eğer belirtilen dosyalar yok ise kendiniz aşağıdaki izin ve sahipliklere bakarak oluşturabilirsiniz.Sonrasında sistem otomatik olarak bu bilgileri kaydetmeye devam edecektir.

[root@artemis ~]# ls -l /var/log/wtmp

-rw-rw-r– 1 root utmp 445440 Oct 9 17:36 /var/log/wtmp

[root@artemis ~]# ls -l /var/log/btmp

-rw——- 1 root utmp 2688 Sep 12 22:53 /var/log/btmp

 

–son—

 

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu