Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Temel Linux Komutları – 1

pengus

Yazıda temel linux komutlarını ele alacağız. Komutların akılda kalabilmesi için komutları deneye deneye ilerlemenizi tavsiye ederim.

**Bu yazı 2 part halinde yayınlanacaktır.

Bazı komutların çıktılarının sorunsuz alınması için root yetkisiyle komutları denemeniz tavsiye edilir

Linux Nedir?

Linux veya GNU/Linux (telaffuz: Lin-uks); Linux çekirdeği ve çeşitli GNU araçları üzerine kurulmuş işletim sistemlerinin genel adıdır. Linux çekirdeği ve GNU araçları açık kaynak kodlu, özgür ve ücretsizdir. Kaynak kodları GNU Genel Kamu Lisansı çerçevesinde özgürce dağıtılabilir, değiştirilebilir ve kullanılabilir. Linux ismi ilk olarak Linus Torvalds tarafından yazılan ve 5 Ekim 1991’de duyurusu yapılan Linux çekirdeğinden gelmektedir.*

*Kaynak: Vikipedia

 

Shell (Kabuk)

700px-isletim-sistemi

Shell kullanıcıdan alınan komutları kernele iletir. Günümüzde genellikle bash kullanılmaktadır. Sistemimizdeki shell programını öğrenmek için;

echo $SHELL

Ekran görüntüsü_2016-08-15_15-04-54

Ortam Değişkenleri

Terminale girdiğimiz komutun çalıştırılabilir bir hizmet ise hangi dizinler altında aranacağını görmek için;

echo $PATH

Ekran görüntüsü_2016-08-15_15-04-54

Yardım Alma

Help

[komut] --help

Ekran görüntüsü_2016-08-15_15-04-54

Man

man [komut]

Ekran görüntüsü_2016-08-15_15-04-54

Dağıtım Adı Öğrenme

lsb_release -a

Ekran görüntüsü_2016-08-15_15-04-54

Sistemle İlgili Bilgi Alma

dmidecode
dmidecode --type [ ]

bios , system , baseboard , chassis , processor , memory , cache , connector , slot  parametreleriyle sistem hakkında bilgi alabiliriz.

Ekran görüntüsü_2016-08-15_15-04-54

Donanım hakkında bilgi almak için;

lshw

 Ekran görüntüsü_2016-08-15_15-04-54

Kernel Versiyonu Öğrenme

uname  komutu sistem hakkında bilgi toplamak için kullanılır -v  -n  gibi parametrelerle kullanılabilir -a  komutu ile tüm bilgileri görmek için kullanabiliriz.

uname -a

Ekran görüntüsü_2016-08-15_15-04-54

Disk Bölümlerini Görme

fdisk  komutu disk yöneticisi aracını çalıştırmaktadır. Sisteme bağlı olan bölümleri görüntülemek için -l  parametresi ile birlikte kullanılabilir.

fdisk -l

Ekran görüntüsü_2016-08-15_15-04-54

Uptime

uptime  komutu bize sistemin aktif olarak çalışmakta olduğu süreyi kaç kullanıcının giriş yaptığını ve sistem saatini gösterir.

uptime

Ekran görüntüsü_2016-08-15_15-04-54

Kullanılan Bellek Miktarı

free  komutu bize sistemin ram durumunu göstermektedir. default olarak kilobayt cinsinden değerleri vermektedir. -m  ile megabayt, -b  ile byte ve -g  ile gigabayt cinsinden değerleri vermektedir.

free -m

Ekran görüntüsü_2016-08-15_15-04-54

Takvim

cal

Ekran görüntüsü_2016-08-15_15-04-54

Dizinler Arasında Gezme ve İçeriğini Listeleme

Dizine Gitmek İçin;

cd /[dizin]

Üst dizine geçmek içincd ..  komutu kullanılabilir yada dizinler arasında geçiş yapmak için cd –  komutu kullanılır.

Ekran görüntüsü_2016-08-15_15-04-54

İçeriği Listeleme

ls

-l  ve -la  ekleyerek dosya ve dizinler hakkında daha detaylı bilgiye ulaşabilirsiniz.(İzinler, değiştirilme tarihi, değiştirilme saati, dosya boyutu)

Ekran görüntüsü_2016-08-15_15-04-54

Bulunulan Dizini Öğrenme

pwd

Gizli Dosya ve Dizinleri Görüntülemek İçin;

ctrl + h

gizli dosya veya dizin yaratmak için adını .[dizin_adı]  şeklinde yapabiliriz.

Ekran görüntüsü_2016-08-15_15-04-54

Terminalde Pratik Metodlar

  • Konsolu temizlemek için clear  komutu yerine ctrl+L  kombinasyonu kullanılabilir.
  • Baş tarafında hata yaptığımız komutun başına dönmek için ctrl+U  komutundan yardım alınabilir.
  • Çalışan komutu durdurmak için ctrl + C  komutundan yardım alabiliriz.
  • Terminalden çıkmak için exit  komutu yada ctrl +D  kombinasyonunu kullanabiliriz.

History

Terminalde daha önce kullandığımız komutları listelemek için;

history
  • Son kullandığımız komutu tekrar kullanmak için !!  yazarak aynı komutu tekrar kullanabiliriz.
  • Kullandığımız komutlar dan örneğin c ile başlayan komutu kullanmak için !c  komutunu kullanabiliriz.
  • Hatırlayamadığımız komut için örneğin !ca  komutundan yardım alabiliriz.
  • Kullandığımız komutların kaç tanesinin saklandığını öğrenmek için echo !HISTSIZE  komutunu kullanırız. Saklanan komut sayısını değiştirmek için .bashrc  dosyasının içinde HISTSIZE  değişkenini düzenleyerek değiştirebiliriz.
  • Kullandığımız komutlarını kaydını silmek için .bash_history  dosyasını silebiliriz veya history -c  komutu ile geçmişi temizleyebiliriz.

Ekran görüntüsü_2016-08-15_15-04-54

Terminalde Birden Fazla Komut Kullanma

[komut]  && [komut]
[komut] ; [komut]

[komut] || [komut]   gibi kullanıp ||  parametresinden yararlanırsak ilk komut başarısız olursa ikici komutu çalıştırır.

Ekran görüntüsü_2016-08-15_15-04-54

Komut Tamamlama

  • Terminalde bir komutun ilk bir kaç harfini yazıp tab  tuşuna basarsak komut tamamlanacaktır. tab  tuşuna iki kere basarsak girdiğimiz harflerle başlıyan komutlar listelenecektir.

Sistemi Açma-Kapatma-Yeniden Başlatma

  • 0: Hiçbir servisin çalışmadığı seviye
  • 1:Tek kullanıcı modu, ağ servisleri çalışmaz
  • 2:Ağ desteği olmadan çoklu kullanıcı modu
  • 3:Ağ destekli çok amaçlı çalışma seviyesi
  • 4:Kullanılmaz, kullanıcı tarafından özel olarak tanımlanabilir
  • 5:Grafiksel kullanıcı arayüzünün çalıştığı seviye
  • 6: Sistemi yeniden başlatma seviyesi

Seviyeler Arası Geçiş İçin

init [seviye]

Sistemi Beklemeden Kapatma

shutdown -h now

Belli Bir Süre Sonra Kapatma

shutdown -h now+[süre]

shutdown  komutunu parametre eklemeden kullandığımızda sistem ini1  yani Single User moda geçicektir.

Sistemi Yeniden Başlatma

reboot

Yazılımların Çalışma Seviyelerinin Kontrolü

  • Sistemde hangi seviyede hangi scriptlerin çalıştığını kontrol etmek için /etc  dizini altında rcx.d  dosyası içerisinde bulunur. x  çalışma seviyesini temsil etmektedir. rc5.d  servisin 5. seviyede çalıştığını göstermektedir.

5. seviyede çalışan servisleri incelersek;

Ekran görüntüsü_2016-08-15_15-04-54

K  harfiyle başlayan servisler o seviyede durudulacak servisleri göstermektedir. S  ile başlayan servisler o seviyede başlatılacak olan servisleri göstermektedir.

Sanal Konsollar

  • Linux da çalışırken ctrl+alt+f1….f6  ya kadar 6 sanal konsolda çalışabilirsiniz. Konsollar arası geçiş için ctrl+alt  tulşarına basak hangi sekmeye gideceksek onu seçebiliriz, tekrar grafik arayüzüne dönmek için ctrl+alt+f7  tuşlarına basarak dönebilirsiniz.

Servislerin Başlatılması ve Durdurulması

Sistemimizle alakalı servisler betikler /etc/init.d  altında bulunmaktadır.

Servis Durumu Sorgulama

/etc/init.d/[servis] status
service [servis_Adı] status

Ekran görüntüsü_2016-08-15_15-04-54

Servislerin Başlatılması

/etc/init.d/[servis] start
service [servis_Adı] start

Ekran görüntüsü_2016-08-15_15-04-54

Servislerin Sonlandırılması

/etc/init.d/[servis] stop
service [servis_Adı] stop

Ekran görüntüsü_2016-08-15_15-04-54

Servislerin Yeniden Başlatılması

/etc/init.d/[servis] restart
service [servis_Adı] restart

Ekran görüntüsü_2016-08-15_15-04-54

  • Debian tabanlı sistemler de server programlarını tasksel  komutu ile grafik arayüze geçerek istediğimiz servisleri buradan kurabiliriz.

Ekran görüntüsü_2016-08-15_15-04-54

Süreçler

Süreç sistemdeki çalışır durumdaki programlara denir. ps  komutu ile süreçleri görüntüleye biliriz.

ps –help a  komutu ile kullanılabilecek parametreleri inceleyebiliriz.

Ekran görüntüsü_2016-08-15_15-04-54

Süreçlerin Listelenmesi

ps aux

Ekran görüntüsü_2016-08-15_15-04-54

ps alx

Ekran görüntüsü_2016-08-15_15-04-54

  • Her sürecin PID (process id)  denilen bir iletişim numarası vardır. Servisler PID  numarası üzerinden haberleşir.
  • top  komutu ile tüm süreçleri anlık olarak takip etmemizi sağlar.

Ekran görüntüsü_2016-08-15_15-04-54

  • Süreçleri pstree  komutu ile ağaç yapısı halinde inceleyebiliriz.

Ekran görüntüsü_2016-08-15_15-04-54

Süreç Sonlandırma

  • Süreçlerin pid numarasını öğrendikten sonra süreci sonlandırmak için;
kill [pid_numarası]

Ekran görüntüsü_2016-08-15_15-04-54

  • Birden fazla süreçle çalışan servisleri sonlandırmak için;
kill -9 [pid_numarası]
killall [servis_adı]

Ekran görüntüsü_2016-08-15_15-04-54

 

Servis PID Numarası Öğrenme

ps aux | grep [servis_adı]

Ekran görüntüsü_2016-08-15_15-04-54

pgrep [servis_adı]

Ekran görüntüsü_2016-08-15_15-04-54

Root Kullanıcısına Ait Süreçleri Listelemek İçin;

pgrep -lu root

Ekran görüntüsü_2016-08-15_15-04-54

Kullanıcı İşlemleri

passwd

  • Linux sistemlerde kullanıcılarla ilgili bilgiler yer alır.
/etc/passwd

Ekran görüntüsü_2016-08-15_15-04-54

shadow

  • Linux sistemlerde kullanıcı parolaları şifrelenmiş halde bulunur.
/etc/shadow

Örnek shadow dosyasını incelersek;

root:$6$ttZw7OIi$LjmBdapfyNA6kKrXnAcF1xkgikQCGcLN3hsNrwZmEZkVNLPmoRqD9KYF5TngV60FAlecJine.Qv5v28uO2p8z.:15944:0:99999 :7:::
  • İlk iki $ işareti arası hangi hashleme algoritmasının kullanıldığını gösterir.
    • 1 ise MD5
    • 2 ise BlowFish
    • 5 ise SHA256
    • 6 ise SHA512
6
  • İkinci ve üçüncü $ işaretleri arası salt değeridir(hashil değer)
ttZw7OIi
  • Son kalan kısımda parolanın şifrelenmiş değeridir.
LjmBdapfyNA6kKrXnAcF1xkgikQCGcLN3hsNrwZmEZkVNLPmoRqD9KYF5TngV60FAlecJine.Qv5v28uO2p8z.

issue

Kullanıcılar sisteme giriş yaparken issue  dosyasındaki mesaj ekranda gözükür bunu değiştirebiliriz.

/etc/issue

Ekran görüntüsü_2016-08-15_15-04-54

login

  • Sistem açılırken Kullanıcı Adı girildikten sonra login betiği çalıştırılır ve parola istenir. Parola doğru ise kullanıcıya ait kabuk çalıştırılır.
man login

komutu ile login e ait dokümantasyonu görüntüleyebilirsiniz.

  • Her loginden sonra gösterilecek metin alltaki dizinde bulunur bunu isteğimize göre değiştirebiliriz.
/etc/motd
  • Sisteme giriş yapmış tüm kullanıcılar alttaki dizindeki dosyaya 2 lik sisteme göre kaydedilir. Bu dosya sistem her yeniden başlatıldığında sıfırlanır.
/var/run/utmp
  • Bu dosyayı normal text editörleriyle okuyamayacağımız için strings komutuyla dosyayı açabiliriz.
strings /var/run/utmp

Sisteme Kullanıcı Ekleme

adduser [kullanıcı_adı]
useradd [kullanıcı_adı]

Kullanıcı Şifresi Değiştirme

passwd [kullanıcı_adı]

Kullanıcı Hesabı Kitleme

usermod -L [kullanıcı_adı]

Kullanıcı Hesabı Aktif Hale Getirme

usermod -U [kullanıcı_adı]

Sisteme Bağlı Kullanıcıları Listeleme

who

Sisteme Giriş Yapılan Kullanıcı Adı Öğrenme

whoami

Kullanıcı Parola Geçerlilik Süresi Değiştirme

chage -E [yıl/ay/gün_formatında_tarih] [kullanıcı_adı]

Kullanıcı Yetkileriyle İşlem Yapma

su [kullanıcı adı]

Host Adı Öğrenme

/etc/hostname

Kullanıcı Hesabından Çıkış

exit

Root Yetkisine Yükselme

su root

Kullanıcı Hesabı Silme

userdel
deluser
userdel -r [kulanıcı_adı]

 

Yazının devamı için: TR | Temel Linux Komutları – 2

About Mustafa Kaan Demirhan

Security Researcher

Follow Me