LINUX SUID, SGID ve Sticky Bitleri



    



  LINUX  SUID, SGID ve Sticky Bitleri


Daha önce linux dosya ve dizin yapısı adında bir yazı yazmıştım.  Bu yazıda alışagelmişin dışında 3

farklı bit'ten bahsedicem.

Önceki yazıya buradan erişebilirsiniz.

Peki nedir bu bitlerin farkı  ya da ne işe yarar bu bitler?  Sorusunu şöyle açıklayalım:

Açılımları şöyle

SUID :   Set User ID 

SGID :   Set Group ID 


                                                   SUID : (Set User ID )

Kimi zaman bir dosyayı bütün bütün kullanıcıların root yetkisiyle çalıştırması gerekebilir. Ancak

tüm kullanıcıların root parolasını bilmesi istenen durum değildir.  Böyle bir durumda dosyaya suid

yetkisi  verilir.

$  ls -l /etc/passwd   komutu verildiğinde çıktısı şöyle olur.

-rw-r--r--   1 root root 2301 May 15 01:26   /etc/passwd

Bir dosyaya SUID hakkı vermek üzere chmod komutu ile u+s  hak belirleyicisi kullanılabilir.


$   sudo chmod u+s  /etc/passwd   komutu verildiğimizde  bu dosyaya suid hakkı vermiş oluyoruz.

Çıktısı şöyle olacak:

-rwSr--r--   1 root root 2301 May 15 01:26   /etc/passwd

görüldüğü üzre dosyanın erişim hakkı değişti.

Yukarıdaki komutun   çalıştırılması halinde, komutun işletilmesinden sonra sisteme

giriş yapan her kullanıcı root yetkileri ile donatılmış olacaktır.

 Bu örnek, bir  sisteminde  denenmemeyi gerektirecek kadar tehlikelidir!





                                                      SGID : (Set Group ID )

SUID ile benzer biçimde, bazı programların çalışmaları süresince belli bir kullanıcı grubunun üyesi 

olarak çalışması gerekli olabilir.  Örneğin yazıcı hizmetleri ile ilgili yazılımlar bu türden haklara 

ihtiyaç duyarlar.  Bir programa SGID hakkı vermek üzere chmod komutu ile g+s  hak belirleyicisi 

kullanılabilir:


$  ls -l /home/ersin/yazici   komutu verildiğinde çıktısı şöyle olur.

-rw-r--r--   1 root root 2301 May 15 01:26   /home/ersin/yazici

$   sudo chmod g+s  /home/ersin/yazici    komutu verildiğimizde  bu dosyaya sgid hakkı vermiş oluyoruz.

Çıktısı şöyle olacak:

-rw-r-Sr--  1 aspa aspa     0 May 16 23:56  /home/ersin/yazici

                                               

                                          Sticky

Tüm kullanıcıların yaz-boz tahtası olarak kullanabileceği dizin /tmp 'dir.  Kullanıcılar tarafından 

işletilen tüm  programlar geçici dosyalarını bu dizinde yaratır ve işleri bittiğinde siler.  Ancak bu 

dizine tüm kullanıcıların  okuma ve yazma hakkı ile erişmesi durumunda kullanıcıların bu dizini 

hepten silebilmesi mümkün olacaktır.

Kullanıcıların yalnızca kendilerine ait dizinleri ve dosyaları silebilmesini sağlamak üzere /tmp dizini 

Sticky erişim hakkı ile donatılmıştır:


$  ls -ld  /tmp  komutu verildiğinde çıktısı şöyle olur.



drwxrwxrwt  15  root  root  4096  May  16 23:57  /tmp

Bir dizine sticky erişim hakkı vermek üzere chmod u+t hak belirleyicisi kullanılabilir.



WINDOWS'u KALICI OLARAK LINUX'a BAĞLAMAK

      

 

  NTFS diski, Linux'a kalıcı olarak bağlamak



Bir çok kullanıcı Linux sistemin yanında ihtiyaç dolayısıyla Windows'u da kullanıyor. Bu yüzdendir 

ki Windows tarafında kullandığı dosyalara erişmek gerekebiliyor. Böyle bir durumda Linux'tan 

Windows'a  erişim yapabiliyor ancak başlangıçta windows disk bağlı olarak gelmiyor.


O halde ne yapmalı?

Windows'u , Linux'a kalıcı olarak bağlayalım.

Nasıl mı? 

Şöyle ki:


Terminal'i (Konsol ya da Uç birim ) açarak aşağıdaki konutu veriyoruz 

sudo fdsik -l 

sizden kullanıcı parolasını isteyecek  ve sınra aşağıdakine benzer bir çıktı verecek 




bunu yapmamızdaki amaç bağlamak istediğimiz disk bölümü  hangi bölümde.

Bu işlemi yaptıktan sonra yapmanız gerken şey bu disk bölümünü bağlamak için biz dizin(klasör) oluşturmak.

Eğer Home dizininde ki bir dizine bağlayacaksanız 

Terminalden mkdir dizin_adı (örnek mkdir win)  komutunu girin 


Eğer kök dizinine bağlayacaksanız mkdir dizin_adı demeniz yeterli olmayacak , bunun için  root 

yetkisi almanız gerekecek  sudo mkdir dizin_adı


Dizinimizide oluşturduğumuza göre artık bağlama işlemini gerçekleştirebiliriz.

Şimdi yapmamız gereken şey  fstab  dosyası içerisine değişiklik yapmak 


fstab (File System Table) nedir?

Linux disk yapılandırma bilgisini  fstab  isimli bir dosyada tutar. Bu dosya dağıtımlara göre

farklı isimlerde ve farklı yollarda olabilir.

Mint dağıtımındaki konumu olan  /etc/fstab yolundaki dosyayı  gedit metin editörüyle (yada bir başkası) açarak bağlama bilgilerini yazacağız. 
Şimdi aşağıdaki komutu veriyoruz.
  gedit  /etc/fstab 
Açılan metin editörü dosyasına aşağıdaki satırı kopyalaıyp yapıştırın.
/dev/sda4 /win ntfs defaults, umask=1000, gid=46 0 0
Siz bu bilgileri kendi disk ve oluşturduğunuz dizin adıyla değiştirip kaydedin.


*   /dev/sda4 benim bağlamak istediğim disk bölümü( Windows sistemde D dizinim)

* /win benim diski bağlamak için yukarıda oluşturduğum dizin_adi (Bu arada ben kök dizine bağladım)


Hepsi bu kadar :)






Django Nedir?


                       

                            Django nedir?



Django,  Python ile yazılmış ücretsiz ve açık kaynak bir web framework (uygulama  iskeletidir).

Frameworkler, websitesi geliştirmeyi hızlandıran ve kolaylaştıran bir grup bileşendir.



                        Frameworklere neden ihtiyaç duyulur?

Frameworkler ;  kompleks, gelişkin projeler geliştirildiğinde bizim için kimi dosyaları ve ayarları hazır olarak oluşturup sunar. Ayrıca çoğu zaman benzer kod bloklarını yazmak zorunda kaldığımız durumlar olur, frameworklar kimi model ya da mimarilere göre hazırlandıklarından bizi aynı zamanda kod tekrarı yapmaktan da kurtarmış olurlar.  


Bir çok programlama dilinin birçok framework'ü bulunur. Python'da aynı şekilde ..

Python ile web sitesi ya da blok oluşturmak için geliştirilmiş frameworkler aşağıdaki görselde ki gibidir.





Django, şuan  python ile web geliştirme yapmak için en popüler ve en güçlü frameworktür.





Linux Sistem ve Donanım Bilgisi _2





                    İşlemci (CPU) Bilgileri


        İşlemci hakkındaki tüm bilgiler aşağıdaki şekilde öğrenilebilir. 

   

       ya da   lscpu komutu ile CPU bilgisi öğrenilebilir




      Kullanılan işlemcinin kaç fiziksel çekirdeği var öğrenilmek istenirse.












                       

                 Bellek (RAM&Swap) Bilgileri

   
     Sistemin ne kadar belleğe sahip olduğunu anlamak için free komudunu kullanabiliriz.
  



                     

                   Disk (Hard disk) Bilgileri


    Disk bilgilerini öğrenmek için iki farklı yaklaşım izlenebilir.

  •  Dosya sistemi alanı kullanımı raporlayan df komudu kullanılabilir. -l sadece yerel diskleri göstermekte, -h parametresi ise çıktıyı insanların rahat okuyabileceği bir formata çevirmektedir (büyüklükler byte yerine GB veya MB şeklinde gözükmekte)
     


  • Disk bölümlendirme için kullanılan fdisk komudunu -l parametresi ile beraber bölümleri listelemek için kullanabiliriz. Bunun için root hesabı veya root yetkisi (sudo grubuna üye) bir hesap gerekmektedir.




        

                   Grafik Kartı (GPU) Bilgileri


      Sistem üzerinde çalışan grafik kartı bilgilerini öğrenmek için tüm PCI cihazlarını    
      listeleyen lspci komudu kullanılabilir.




     Blok Aygitlarin Bilgilerini Görüntüleme

      Blok aygilar, bilgisayarinizdaki hard disk, flash disk / bellek gibi depolama aygitlaridir. Blok aygitlarin bilgilerini goruntulemek icin lsblk komutunu kullanabilirsiniz


  


     Diğer Bilgiler (Ethernet, kablosuz, ses kartları vb.)


   Sistem üzerinde diğer donanımları görmek için lspci komudu kullanılabilir.










Linux Sistem ve Donanım Bilgisi _1




                                                 

                    Linux Sistem Bilgisini Görüntüleme

        Sadece sistem ismini goruntulemek icin uname  komutunu kullanabilirsiniz





     Bilgisayarin ağ   ismini ogrenmek icin, uname komutu ile birlikte -n anahtar parametresi kullanılır.



  Kernel(cekirdek) surumunu goruntulemek icin uname komutu ile birlikte -r anahtar     opsiyonunu kullanılır






  Makinenin/bilgisayarin donanim ismini (donanim/islemci mimarisini) ogrenmek icin uname komutu    ile -m anahtar secenegini kullanılır.




    Butun bu bilgileri tek seferde uname -a komutu ile ekrana yazdırılabilir.