Linux sysadmin #2 : Kullanicilar ve Gruplar


Daha once dosya ve klasor izinlerine gozatmistik. Bu gorece kisa postta ise, genel olarak linuxun kullanici ve gruplari nasil yonettigi hakkinda konusacagiz.

Kullanicilar
Sistemde tanimli kullanicilarla ilgili bilgi almak icin passwd dosyasi incelenebilir. 

$ cat /etc/passswd

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

Adinda password gecse de parola icermeyen bu dosya bize sistemdeki kullanicilarin bir listesini verir. Kullanici adindan sonra gelen x, o kullanicinin sisteme bir parola ile login oldugunu gosterir. Ornegin root kullanicisindan parola olmadigini goruyoruz. Daha sonra userID ve groupID numaralari geliyor. Takiben kullanicinin home directory'si ve son olarak da default shell path'ini goruyoruz. 

Peki neden bu kadar fazla kullanici tanimli ve garip isimleri var? Bu kullanicilar sistem kullanicilari olup bazi tasklar bu kullanicilar uzerinden yerine getirilir. 

Gruplar
Benzer sekilde /etc/group dosyasi da sistemde tanimli gruplar hakkinda bilgi verir. 

$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
...

Listede grup adi ve grupId direk olarak gorulebiliyor. 

Bir kullanicinin bagli oldugu gruplari gormenin kolay bir yolu ise id komutunu kullanmaktir. 

$ id lombak
uid=1000(lombak) gid=1000(lombak) groups=1000(lombak),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev)

bu sekilde userId, ana grupId gibi bilgiler yaninda kullanicinin hangi gruplara dahil oldugunun listesini de gorebiliriz. 

Peki canli olarak sistemde suan login olmus olan kullanicilari nasil gorebiliriz? w komutu ile hangi kullanicilarin sistemde oldugunu ve hatta suanda ne yaptigini gorebiliriz. 

last komutu ile son zamanlarda sisteme giris cikis yapmis kullanicilari gorebiliriz. 

Kullanici olusturma
Gelin simdi beraber bir kullanici olsutralim

$ sudo useradd -m baklom

-m argumani bu kullanici icin home directory olusturmak istedigimizi belirtiyor. Bunu yaptiktan sonra gidip tekrar /etc/passwd dosyasini kontrol edersek, su sekilde bi kayit olusturuldugunu gorecegiz. 

baklom:x:1003:1005::/home/baklom:/bin/sh

Gidip bu kullanicinin home directory'sine bakalim. Ilk basta bos gozukse de ls -a ile gizli dosyalari da listeledigimizde 3 dosya olusturulmus oldugunu goruyoruz. 

$ /home/baklom$ ls -a
.  ..  .bash_logout  .bashrc  .profile

Peki bu dosyalar nereden geliyor? Bir template klasorden. Adi ise skel klasoru. (skeleton'dan geliyormus)

$ ls -a /etc/skel
.  ..  .bash_logout  .bashrc  .profile

Goruldugu gibi yeni bir kullanici olusturuldugu zaman, bu skel klasoru kopyalanarak kullaniciya veriliyor. Yani biz ileride yeni olusturulan bir kullanicinin default olarak ekstra bir dosyaya sahip olmasini istersek sysadmin olarak dosyayi bu klasore kopyalamamiz gerekir. 

Taze kullanicimiz baklim sisteme nasil login olacak? Heniz bir parolasi yok? Simdi sudo ile olusturacagiz. 

$ sudo passwd baklom
New password:
Retype new password:
passwd: password updated successfully

Iki kere sormasinin ardindan parolayi set etmis bulnuyoruz. 

Linux felsefesi geregi bir kullaniciya gereken minimum yetkileri vermemiz gerekiyor. Bu sayede sistemin guvenligini koruyabiliriz. Bunu yapmanin en kolay yolu iste grup kullanmak. Yani belirli tasklari yapma yetkisini bir gruba veriyoruz ve bu tasklari yapabilmesi gereken kullanicilari da bu gruba ekliyoruz. 

Grup ekleme
Diyelim ki sistem cok-gizli isimli bir klasor var ve bu klasore sadece cok belli kimseler erisebiliyor. 

$ sudo mkdir /var/cok-gizli

Bu klasore erisebilecek cok belli kimseleri barindiran grubu da olusturalim:

$ sudo groupadd elit-grup
$ sudo chown :elit-grup /var/cok-gizli
$ sudo usermod -a -G elit-grup baklom
$ sudo chmod g+w /var/cok-gizli

Grubu olusturduktan sonra da cok-gizli klasoru sahibi olarak elip-grup'u atadik. Ardindan baklom kullanicisini elit-grup grubuna dahil ettik. id baklom ile kontrol edebilirsiniz. Son olarak da bu klasorun grubuna yazma yetkisi verdik. Bu sayede elit-grup uyesi kullanicilar bu klasore yazabilecekler. Ancak bu metot (grup olusturma, kullanici atama ve gruba yazma-okuma yetkisi verme) gorulebilecegi gibi sadece var olan klasorlerde ise yarar. Yani cok-gizli klasoru altina yeni bir klasor olusturulursa, bu klasorun default yetki semasinin ne olacagini umask degeri  belirler, bunu daha onceki bir postta tartismistik.

Ozet:
- kullanicilar hakkinda bilgi alma cat /etc/passwd
- id kullanici ile kullanicinin dahil oldugu gruplari gorme
- sisteme yapilan giris cikislari gorme : last
- skel template klasoru yeni kullaniciya kopyalanir
- yeni kullanici ekleme useradd, passwd ile parola atama 
- grup ekleme



Yorumlar

Bu blogdaki popüler yayınlar

Python'da Multithreading ve Multiprocessing

Threat Modeling 1

Encoding / Decoding