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;
- Hangi sistemlerde hangi ekiplerin, hangi ekip üyeleri olmalı.Yani development,test,production ortamlarına göre kullanıcı şablonları çıkartılmalı.
- 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.
- Kullanıcı ve grup problemleriyle kim ilgilenecek.
- 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.
- Ara yüzden,konsolda komut satırında system-config-users diyerek gelen menüde(User Manager) işlemlerimize devam edebiliriz.
- Useradd,userdel,usermod,groupadd,groupdel,groupmod… gibi 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.)
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.
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
“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.
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.
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;
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.
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.
Eklenmiş olan bir grubun özelliklerini değiştirmek istiyorsak yine ,grubu seçerek “Properties” denir,gelen ekranda .
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.
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.
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. |
-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.
/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.
Ö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.
- Kullanıcını ismi
- Kullanıcının encrypted şifresi
- En son şifre değiştirilme tarihi (Last password change (lastchanged)). Unix&Linux sistemlerde tarih 1 ocak 1970’den itibaren başlar.
- 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.
- Maximum,Şifreyi kullanma süresi,eğer 99999 ise önemi yoktur,süre kısıtlanmamıştır.
- Warn,kullanıcını şifresini değiştirme tarihine yaklaşmadan kaç gün önce uyarı verilecek, -1 ise önemi yoktur,uyarı verilmeyecektir.
- 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.
- 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, |
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 in” bilgisini,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—