O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Pwnlydays - Linux 101

21/22 Ekim YBÜ Pwnlydays Linux101 sınıfı ders içeriği.

  • Entre para ver os comentários

Pwnlydays - Linux 101

  1. 1. Linux 101 Canyoupwnme | PwnlyDays
  2. 2. Biz kimiz? Mustafa Kaan DEMİRHAN #DEU Ceng @mstfknn Sinan ŞAHİN #OMÜ | BİDB Sistem Yönetimi | BÖTE Öğrencisi @_sinansahin_ Caner FİLİBELİOĞLU @dimakoci_
  3. 3. Konular Linux ve GNU Nedir? Dağıtımlar Neler? Hangi Dağıtımı Seçmeliyim? Ubuntu Kurulumu Temel Linux Kullanım Bilgileri Kabuk Dosya Sistemi Komutlar
  4. 4. Konular Linux Yetkilendirme Modeli Kullanıcı Yönetimi Süreç Yönetimi Temel Sistem Yapılandırma Dosyaları Paket Yönetimi Kaynak Tüketimi Takip Araçları Dosya Editörleri
  5. 5. Distrowatch.com
  6. 6. Ubuntu Kurulumu Adım adım sanal makineye Ubuntu kuracağız. Gereksinimler: 1. Ubuntu 16.04 iso dosyası 2. Sanallaştırma Yazılımı Bu sunumda sanallaştırma yazılımı olarak Virtualbox tercih edilmiştir.
  7. 7. Ubuntu Kurulumu
  8. 8. Ubuntu Kurulumu
  9. 9. Ubuntu Kurulumu
  10. 10. Ubuntu Kurulumu
  11. 11. Ubuntu Kurulumu
  12. 12. Ubuntu Kurulumu
  13. 13. Ubuntu Kurulumu
  14. 14. Ubuntu Kurulumu
  15. 15. Ubuntu Kurulumu
  16. 16. Ubuntu Kurulumu
  17. 17. Ubuntu Kurulumu Bağlantı Türleri: 1. Nat 2. Nat Ağı 3. Köprü Bağdaştırıcı(Bridge) 4. Sadece Anamakine Bağdaştırıcısı(Host Only) 5. Dahili Ağ
  18. 18. Ubuntu Kurulumu
  19. 19. Ubuntu Kurulumu
  20. 20. Ubuntu Kurulumu
  21. 21. Ubuntu Kurulumu
  22. 22. Ubuntu Kurulumu
  23. 23. Ubuntu Kurulumu
  24. 24. Ubuntu Kurulumu
  25. 25. Ubuntu Kurulumu
  26. 26. Ubuntu Kurulumu
  27. 27. Ubuntu Kurulumu
  28. 28. Ubuntu Kurulumu
  29. 29. Ubuntu Kurulumu
  30. 30. Ubuntu Kurulumu
  31. 31. Ubuntu Kurulumu
  32. 32. Ubuntu Kurulumu
  33. 33. Ubuntu Kurulumu
  34. 34. Temel Linux Kullanım Bilgileri
  35. 35. Kabuk
  36. 36. Dosya Sistemi /bin Temel komutlar /boot Ön yükleyicinin kullandığı dosyalar /dev Aygıt dosyaları /etc Bilgisayara özel yapılandırma /lib Paylaşılan temel kütüphaneler ve çekirdek modülleri /mediaÇıkarılabilir aygıtlar için bağlama noktası
  37. 37. Dosya Sistemi /mnt Dosya sistemlerini geçici olarak bağlama noktası /opt Sonradan eklenen uygulamalar /sbin Temel sistem programları /tmp Geçici dosyalar /usr İkincil kök, kullanıcı için yeni dizilim noktası /var Değişken veriler
  38. 38. /bin /bin dizini sistem yöneticileri ve normal sistem kullanıcıları için kullanışlı temel komutları barındırır. Kullanıcı kabuğu bash ve ls, cp, rm, cat gibi pek çok temel komutu içermesi nedeni ile en basit sistem kurulumunda bile oluşturulur.
  39. 39. /boot İşletim sisteminin açılması için gerekli bütün dosyalar bu dizindedir. Çekirdekler ve initrd kalıpları bu dizinde yer alır.
  40. 40. /dev Bu dizin özel veya aygıt dosyalarının konumudur. UNIX dünyasındaki “herşey bir dosyadır” kuralının bir göstergesi olarak bilgisayara bağlı aygıtlar, donanımlar /dev altında kendilerine erişimi sağlayan bir dosyaya sahiptirler. # cat rumelihisari.wav > /dev/dsp
  41. 41. /etc Sistemin önemli yapılandırma dosyaları bu dizindedir. Yapılandırma dosyaları çalıştırılamayan fakat okunan ve yorumlanan dosyalardır. Bir programın nasıl çalışacağını belirlerler. Buradaki dosyalar olmadan sistem programları düzgün çalışmayacaktır. Her zaman yedeklemede önceliğe sahiptir.
  42. 42. /home Linux çok kullanıcılı bir işletim sistemi olarak kullanıcıların dosyalarını başkalarına karşı koruduğu gibi herkese çalışması için bir ev (home) dizini sunar. Linux'te standart olarak kullanıcı dizinleri /home altında yer alır. Buraya kullanıcı istediği dosyaları yerleştirir, programları kurar veya siler.
  43. 43. /lib Bu dizin çekirdek modülleri ve sistem kütüphanelerini içerir. Çekirdek modülleri sistemin açılışı için gerekli olup bazı donanımların sistem tarafından tanınmasını sağlar. Sistem kütüphaneleri ise /bin ve /sbin altındaki programların çalışması için gerekli C kütüphaneleridir. Kütüphane dosyalarının uzantısı *.so şeklindedir.
  44. 44. /media Disket, cd-rom, dv-rom, cd/dvd-rw gibi sökülüp takılabilir dosya sistemleri bu dizine bağlanmaktadır.
  45. 45. /mnt Dosya sistemlerini veya aygıtları bağlamak için kullanılan genel bağlama noktasıdır. Bağlama işlemi mount komutuyla yapılır: # mount /dev/hdd /mnt Bu dizin içerisinde /mnt/cdrom /mnt/floppy gibi dizinler görülebilir. Sistem yöneticisi kendisi isterse burada istediği bağlama noktalarını oluşturabilir: # mount /dev/hda1 /mnt/windows_xp
  46. 46. /opt İşletim sisteminin öntanımlı kurulumu ile gelmeyen tüm yazılım ve paketlerin kurulumu için /opt dizini tahsis edilmiştir. Örneğin, Firefox, LibreOffice
  47. 47. /proc /proc sanal bir dosya sistemidir. Linux'un sunduğu en güçlü özelliklerden biri de /proc dosya sistemidir. Buradaki dosyalar gerçek içerik taşımaz. Çalışma zamanında çekirdek tarafından içerikler güncellenebilir. Sistem belleği, bağlanmış aygıtlar, donanım bilgisi, süreçlerin durumu gibi çekirdeğe ait bilgileri barındırır. # lsmod
  48. 48. /root Sistem yöneticisinin ev dizinidir. Sistem kullanıcısı 'root' isimli hesaba sahiptir ve bu hesabın ev dizini /root dizinidir.
  49. 49. /sbin Sistem programları (system binary) bu dizinde bulunur. Sistem programlarının normal programlardan (/bin) farkı sistem yönetimine yönelik olmalarıdır. Büyük bir kısmını çalıştırmaya normal kullanıcılar yetkili değildir. Çalıştırabildikleri ise sistemden bilgi almaya yönelik, sistemde değişiklik yapmayan sistem komutlarıdır.
  50. 50. /usr Sistemde en çok yer kaplayan dizin /usr dizinidir. Bu dizin kullanıcı için ikinci bir kök dizin olarak düşünülebilir. Nasılki sistemin /bin, /sbin dizinleri var; /usr/bin ve /usr/sbin dizinleri de vardır. Sisteme sonradan kullanıcı tarafından kurulan programlar /usr 'ı kök kabul ederek dosya sistemine yerleşirler. Örneğin kullanıcı programları /usr/bin'e, sistem programları /usr/sbin'e, yapılandırma dosyaları /usr/etc veya /usr/local/etc'ye yerleştirilir.
  51. 51. /var Genel olarak değişken (variable) veriler/dosyalar bu dizinde tutulur. Örneğin sistem günlükleri, mail kuyruğu, gelen mailler, yazıcı kuyruğu, programların kilit dosyaları vs… # ls /var
  52. 52. /tmp Geçici olarak kullanılacak dosyalar bu dizinde oluşturulur. Bütün programlar ve kullanıcılar bu dizine yazabilirler. Buradaki dosyaları ne yaptığınıza emin olmadan silmeniz tehlikeli olabilir. Çünkü silinen dosyaları o an çalışan süreçlerden biri kullanıyor olabilir.
  53. 53. Komutlar $ man komut $ komut --help $ komut -h $ komut parametreler
  54. 54. ls Dizin içeriğini (dosya ve alt dizinleri) listeler. ls komutunun pek çok parametresi vardır. Yardım sayfaları (man ls) kullanılarak detaylı bilgi alınabilir. $ ls -l $ ls -a
  55. 55. cat Dosyaları birleştirmek ve standart çıkışa basmak için kullanılır. $ cat 1.txt Ben 1.dosyayim $ cat 1.txt 2.txt Ben 1.dosyayim Ben 2.dosyayim
  56. 56. more Bir veya daha fazla dosyanın içeriğini ekranda görmek için kullanılır. $ more /etc/passwd
  57. 57. head Verilen dosyanın ilk satırlarını görüntüler. –n ile ilk kaç satırın görüntülenmesi gerektiği belirtilir. Eğer satır sayısı verilmez ise ön tanımlı olarak ilk 10 satırı gösterir. $ head –n 2 beni.oku Ben sevimli bir dosyayim. Bende toplam 3 satir vardir.
  58. 58. tail Dosyanın son kısımlarını gösterir. –c ile byte sayısı, -n ile satır sayısı verilebilir. Eğer dosya verilmez ise standart girişten okur. $ tail -n 1 beni.oku Iste bu da son satir.
  59. 59. cp Dosya kopyalar. Bir dosyayı başka bir dosya olarak kopyalayacağı gibi birkaç dosyayı bir dizine de kopyalayabilir. $ cp -pv *.txt arsiv/ `11-01-2007.txt' -> `arsiv/11-01-2007.txt' `11-02-2007.txt' -> `arsiv/11-02-2007.txt' `ozet.txt' -> `arsiv/ozet.txt'
  60. 60. df Belirtilen dosya sistemine ait veya bağlanmış dosya sistemlerinin boş disk alanını gösterir. Ölçü birimi her blok için 512 byte’tır. BLOCKSIZE çevre değişkeni ile görüntüleme birimi değiştirilebilir.
  61. 61. du Disk kullanım istatistiklerini gösterir. $ du -h
  62. 62. mv Bir dosyayı veya dizini başka bir dosya veya dizin olarak taşır. Veya birkaç dosya veya dizini başka bir dizine taşır. $ mv old.file new.file
  63. 63. rm Dosya veya dizin siler. $ rm –f beni.oku $ rm –fr dizin1
  64. 64. ln Dosyalar ve dizinler arasında bağlantılar kurar. Bu komut, orijinal dosya ile aynı yetkilendirmeye sahip yeni bir dosya kaydı oluşturur. İki çeşit bağlantı vardır. Sıkı (hard) bağlantılarda yapılan değişikler orijinal dosyayı etkiler. Sembolik (soft) bağlantı sadece orijinal dosyayı gösteren bir isimdir. Sembolik bağlantıya erişim, orijinal dosyaya erişime neden olur. Ancak sembolik bağlantının silinmesi orijinal dosyayı silmez. Kullanımı: ln seçenek mevcut_dosya olusturulacak_bağlantı
  65. 65. mkdir Dizin oluşturmak için kullanılır. -p Oluşturulacak dizinin üst dizinleri yoksa onları da oluşturur. $ mkdir arsiv $ mkdir –p 2007/02/17/18/00
  66. 66. touch Eğer belirtilen dosya mevcut ise dosya erişim ve değiştirilme zamanlarını günceller. Eğer belirtilen dosya mevcut değilse dosyayı oluşturur.
  67. 67. pwd İçinde bulunulan dizinin yolunu verir. Bazı kabuklarda bu komut dahili komut olarak da bulunmaktadır.
  68. 68. grep Dosya içinde arama yapmak için kullanılır. grep'in temel kullanımı: $ grep [-seçenekler] desen(pattern) dosyalar $ grep ubuntu /etc/passwd
  69. 69. find Dosya aramak için kullanılır. Kullanımı: $ find dizin seçenekler $ find / -name httpd.conf
  70. 70. chmod Dosya modunu değiştirir. Dosya modları, dosya üzerindeki yetkileri üç grup için düzenler: 1. Dosya sahibi 2. Dosya sahibinin grubundakiler 3. Herkes Yetkiler ise üç adettir: Okuma, yazma ve çalıştırma. Yetkiler sayılarla (Okuma = 4, yazma = 2, çalıştırma = 1) veya r, w ve x gibi harflerle temsil edilebilir. $ chmod +r sirala.sh $ chmod u+w sirala.sh $ chmod g+x,o+x sirala.sh
  71. 71. chown Dosya sahibi ve grubunu değiştirir. $ chown simsek:admin beni.oku $ ls -l beni.oku
  72. 72. expr Matematiksel ifadeleri hesaplamak için kullanılır. İfadeye ait bütün elemanlar ayrı parametre olarak verilmelidir. Yani aralarında boşluk olmalıdır. $ expr 5 > 2 $ expr 3 + 4 $ expr 13 % 10
  73. 73. ps Sistemde etkin olarak çalışan süreçleri listeler. # ps # ps au # ps aux
  74. 74. kill Çalışan bir süreci sonlandırmak veya sürece sinyal göndermek için kullanılır. # kill –Sinyalnumarası pid Yalnızca yetkili kullanıcı diğer süreçlere sinyal gönderebilir. Normal kullanıcılar ancak kendi oluşturdukları süreçlere sinyal gönderebilirler.
  75. 75. id Kullanıcı bilgilerini verir. # id
  76. 76. who Sistem üzerinde şu an kimlerin olduğunu ve ne zaman girdiklerini gösterir. # who
  77. 77. wc Kelime, satır, karakter ve byte sayar. Girdiyi standart girişten veya parametre olarak verilen dosyadan alır. -c Karakter sayısını verir. -l Satır sayısını verir. -m Karakter sayısını verir. Ancak eğer yerel ayarlar multibyte’ı destekliyorsa onları da sayar. -w Kelime sayısını sayar. $ cat beni.oku | wc –l
  78. 78. cut Standart girişten okuduğu satırlar içindeki istenen sütunları gösterir. Sütun seçme işlemi bir ayıraca göre yapılabileceği gibi sabit boyda da yapılabilir. # cat /etc/passwd
  79. 79. uname Sistem hakkında bilgiler verir. # uname -a
  80. 80. shutdown Verilen zamanda sistemi kapatır. -p Sistemi durur (halt) ve gücü keser (donanımın desteklemesi lazım). -r Sistemi yeniden başlatır (reboot). # shutdown –r now # shutdown –p now
  81. 81. sync Bekleyen disk yazmalarının tamamlanmasını zorlar. Genellikle reboot ve halt işlemlerinden önce kullanılır. Eğer önbellekte duran ve henüz diske yazılmayan bilgiler varsa bunların diske yazılmasını zorlar. Böylece sistemi kapatmadan önce veri kaybı olmayacağı garantilenir. Reboot ve halt komutları verildiğinde çalışan betikler bu işlemi otomatik olarak yaptığından sistem yöneticisinin normalde ellen bu işlemi yapmasına gerek yoktur. Hiçbir parametre almaz. # sync
  82. 82. Linux Yetkilendirme Modeli $ ls -l /bin/cp -rwxr-xr-x 1 root root 151024 Şub 18 2016 /bin/cp
  83. 83. Yetkiler 'ls' komutu -l parametresi ile kullanıldığında yukarıdaki gibi dosyaların yetkilerini belirten ayrıntılı bir çıktı verir. Satır başında yer alan -rwxr-xr-x bu dosyaya ait hakları belirtmektedir. Bu haklar üç kısımdan oluşmaktadır. -rwxr-xr-x
  84. 84. Dosyaların Türleri '-' file(dosya) 'd' directory (dizin) 'l' symbolic link (sembolik bağ) 'c' character special device (karakter aygıt) 'b' block special device (blok aygıt) 'p' fifo 's' socket
  85. 85. İzin Türleri 'r' 4 okuma izni 'w' 2 yazma izni 'x' 1 çalıştırma izni
  86. 86. İzin Seviyleri u user g group o other # chmod g+w file
  87. 87. Kullanıcı ve Gruplar 'ls -l' çıktısındaki önemli bir bilgi de üçüncü ve dördüncü sütunda yer alan dosyanın sahibine ait kullanıcı ve grup bilgisidir. # whoami root # su – sinan $ whoami sinan $ groups
  88. 88. Dosyanın sahibini ve grubunu değiştirme Bir dosyanın sahibini ve grubunu değiştirmek için: # chown root /file # chgrp wheel /file Bu iki işlem tek bir chown komutu kullanılarak da yapılabilir: # chown root:wheel /file
  89. 89. Kullanıcı Yönetimi Linux, kullanıcıları yönetmek için iki temel dosyayı kullanmaktadır: /etc/passwd: Kullanıcı veritabanı /etc/shadow: Grup veritabanı
  90. 90. /etc/passwd Kullanıcıya ait bütün bilgiler /etc/passwd dosyasında yer alır. Bu dosya satır satır ve her satırı kolon (:) simgesi ile ayrılmış aşağıdaki gibi kullanıcı bilgilerini içerir: kullanıcı_adı:parola:kullanıcı_no:grup_no:açıklama:ev_dizini:kabuk # tail /etc/passwd # tail /etc/shadow
  91. 91. /etc/group Her kullanıcı bir gruba üyedir. Grup kavramı, ortak çalışma ve aynı yetkilere sahip kullanıcılar oluşturabilmek için oluşturulmuştur. Her kullanıcının grup bilgisi passwd dosyasında yazmaktadır. İçeriği aşağıdaki gibidir: sambashare:x:128:sinan İlk sütun grup ismini, ikincisi parola alanını, üçüncüsü grup numarasını ve dördüncü alan bu gruba üye kullanıcıları gösterir.
  92. 92. Hesap İşlemleri Yetkili kullanıcılar sisteme kullanıcı ekleyebilir, çıkarabilir, parola değiştirebilir. # groupadd test # useradd testusr -d /home/testusr -s /bin/bash -g test # id testusr uid=9029(testusr) gid=9060(test) groups=9060(test) # passwd testusr
  93. 93. Açılış Dosyaları Kullanıcıların sisteme her girişinde yapılmak istenen işlemler /etc/profile dosyasına yazılır. Bu dosya tüm kullanıcılar için geçerli olup yetkili kullanıcı tarafından düzenlenebilir. Kullanıcılar ise kendileri için her girişte yapılmasını istedikleri işlemleri kendi ev dizinindeki .bash_profile dosyasına yazar. Eğer bu dosya yoksa oluşturulması gerekir. Her kabuk programının açılış dosyası farklıdır. Bash kabuğu .bash_profile dosyasını kullanır.
  94. 94. Süreç Yönetimi Bir progrmın çalışan haline süreç (process) denir ve Linux altında çalışan her bir süreç, PID denen süreç numarası ile takip edilir. $ ps $ ps -aux
  95. 95. Derleyerek Program Kurma Linux altında programları derlemek için gcc kullanılır. Programlar insanların anlayacağı dille yazıldığından makinanın (programları yorumlayan işlemcidir) anlayacağı dile çevrilmesi lazım. Bu işi derleyiciler yapar ve bu işleme program derleme denir. # tar -zxf kaynakkod.tar.gz # ./configure # make # make install
  96. 96. Paket Yönetimi Debian tabanlılar : deb apt-get RedHat tabanlılar : rpm yum
  97. 97. rpm Paket kurmak: # rpm -ivh xsnow-1.41-1.i386.rpm Paketi güncellemek için: # rpm -Uvh xsnow-1.42-1.i386.rpm Paketi silmek için: # rpm -e xsnow
  98. 98. yum Paket kurmak için: # yum install package Paketi güncellemek için: # yum update package Paketi silmek için: # yum remove package
  99. 99. apt-get Paket kurmak için: # apt-get install package Paket güncellemek için: # apt-get -u upgrade Paketi kaldırmak için: # apt-get remove package

×