Archive for Ağustos 17th, 2007
Unix/Linux Sistemlerde umask Komutu
umask
####
umask, kisaca ontanimli olarak yeni yaratilacak dosya ve dizinlere olan erisim haklarini almak icin kullanilir, ontanimli hali 022 dir
Daha yakindan bakalim
r-4
w-2
x-1
demistik daha once, peki umask 022 ne anlama geliyor
0 –> kimseden bir hak almiyoruz
2 –> yazma haklarini aliyoruz
4 –> okuma haklarini aliyoruz
Kolay bir method, umask degerinin 000 oldugu durumda
dizin haklari 777
dosya haklari 666 dir
umask degeri 022 ise gerekli izinler nedir ?
dizin haklari icin 777 – 022 = 750
dosya haklari icin 666 – 022 = 644
Bu durumda dosyamizi uclu gruplara bolelim
0 (dosya sahibi)
##########
Bir hak almadigimiz icin dosya sahibi nin;
dosya icin haklari —> rw-
dizin icin haklari —> rwx olacaktir
2 (dosya grubu)
##########
Bu gruba ait kisilerden yazma haklarini ellerinden aliyoruz
dosya icin –> r–
dizin icin –> r-x
2 (digerleri)
#######
Digerleri icin yazma haklarini ellerinden aliyoruz
dosyaicin –> r–
dizin icin –> r-x
Komut olarak kullanimi
##############
| Kod: |
| hakan@haarp ~ $ mkdir umask_klasoru hakan@haarp ~ $ ls -l | grep umask_klasoru drwxr-xr-x 2 hakan users 4096 May 11 11:23 umask_klasoru |
/home/hakan/ icine umask_klasoru adli bir dizin yarattik, ontanimli umask degerimi 022 idi, buna gore gruptan ve digerlerinden yazma izinlerini aldik, dosya sahibinin izinlerine dokunmadik
olusturuacak yeni
dizinler icin (rwx / r-x / r-x) = 755
dosyalar icin (rw- / r– / r–) = 644
Peki bu klasore “hakan” isimli bir dosya yaratalim, ama ontanimli disina cikalim bunun icin “umask_klasoru” nun icine olusturlacak yeni dosya ve dizinlerin haklarini “umask” komutu ile degistirelim
Konuya gore yeni yaratilacak
dizinler icin –> rwx / r-x / — = 750
dosyalar icin —> rw- / r– / — = 640
istedigimiz izin haklari boyle oylsun
777 – 750 = 027
umask degerimiz 027
| Kod: |
| hakan@haarp ~ $ umask 027 -R umask_klasoru/ hakan@haarp ~ $ touch umask_klasoru/hakan hakan@haarp ~ $ ls -l umask_klasoru/ toplam 0 -rw-r—– 1 hakan users 0 May 11 11:35 hakan |
Pardus Linux Forumlarından Hakan Sönmez’in bir yazısıdır teşekkür ediyorum.
Unix/Linux Sistemlerde Dosya İzinleri
Dosya izinlerini anlamak
Linux de her bir dosyanin bir sahibi bir de grubu bulunur
| Kod: |
| hakan@haarp ~ $ ls -l toplam 6744 drwxr-xr-x 10 hakan users 4096 May 9 23:43 3rd_party |
r – Read (okuma izni)
w – write (yazma izni)
x – Execute (calistirma izni)
hakan —> dosya sahibi
users —> dosyanin grubu
bunlari uclu gruplar halinde uc gruptan olustugunu varsayarak ayiriyoruz
rwx / r-x / r-x
bu dizilime gore ;
ilk uclu –> dosya sahibi izinlerini
ikinci —-> dosyanin grubunda bulunanlarin izinlerini
ucuncu –> digerlerinin izinlerini gosterir
Simdi benim 3rd_party klasorumun yapisina bakalim
d–> dizin oldugunu gosteriyor
ilk uclu —> rwx (okuma, yazma, calistirma) hepsi ne sahip, yani kim hakan isimli kullanici
ikinci uclu –> r-x (okuma yapar, yazma yapamaz, calistirma yapar) kim bunlar, users grubundakiler
ucuncu uclu –> r-x (okuma yapar, yazma yapamaz, calistirma yapar) digerlerinin iznlerini ifade eder
tum bunlarin ikilik duzende kodlandiklarini dusunursek
421 sistemi –> rwx i olusturur
r = 4
w = 2
x = 1
toplamdaki sayi izinlerin gostergesidir
harhangi bir uclu icin 7 demek = 4 [r] + 2 [w] + 1 [x] yani tum izinlere sahip, peki 6 ne demek bu durumda ?
6 = 4 + 2 + 0 (rw-) okuma yazma izinleri varken calistirma izni yok demek
5 = 4 + 0 + 1 (r-x) okuma ve calistirma var, yazma yok
4 = 4 + 0 + 0 (r–) sadece okuma izni
gibi mantik bu sekilde ilerler
harhangi bir dosya veya klasor un iznini degistirmek icin kullanilan komut chmod tur
bir ornek verelim,
| Kod: |
| hakan@haarp ~ $ ls -l toplam 6744 -rw-r–r– 1 hakan users 0 May 10 01:51 adosya |
izinlerin su haldeki durumu
ilk uclu = 4+ 2 + 0 = 6
ikinci uclu = 4 + 0 + 0 = 4
ucuncu uclu = 4 + 0 + 0 = 4
yani yanyana yazarsak 644 olur
Ben bu “users” grubundakilere calistirma ve yazma izni verecegim ne yapmam gerekir ?
Ortadaki ucluyu degistirmeliyim, degil mi ? cunku “users” grubunu bu ikinci uclu ifade ediyordu
chmod —> kullanilacak komut
| Kod: |
| hakan@haarp ~ $ chmod 674 adosya hakan@haarp ~ $ ls -l toplam 6744 -rw-rwxr– 1 hakan users 0 May 10 01:51 adosya |
bakiniz ikinci uclu (r–) iken (rwx) haline geldi
simdi yakindan bakalim nolmus ?
ilk grup ayni kaldi 6 idi zaten = 4 + 2 + 0 [6]
ikinci grup 4 idi = 4 + 0 + 0, komutta ikinci sayimiz 7 oldu yani 4 + 2 + 1 dedik [7]
ucuncu grubu degistirmedik 4 idi, 4 olarak biraktik [4]
simdi hepsinden tum izinleri alalim sadece dosya sahibine tum izinleri verelim
| Kod: |
| hakan@haarp ~ $ chmod 700 adosya hakan@haarp ~ $ ls -l toplam 6744 -rwx—— 1 hakan users 0 May 10 01:51 adosya |
gordugunuz uzere sadece “hakan” yani dosya sahibi tum izinlere sahip (7=4 + 2 + 1)
Peki okuma yazma calistirma izinlerini degistirdik, dosyanin sahibini ve grubunu degistirelim
Hali hazirda dosya sahibi “hakan”, grubu ise “users”
Kullanacagimiz komut —-> chown
| Kod: |
| hakan@haarp ~ $ chown root:muzik adosya -rwx—— 1 root muzik 0 May 10 01:51 adosya |
Simdi dosya sahibi “root”, grubu ise “muzik” oldu nasil sizce de kolay degil mi ?
Not :
Tum dosya izinleri bu kadar degil elbette, digerlerini hazirlik asamasindayim, onlari da bu bolumden takip ediniz
Hazirliktaki belge : Sticky (t) yapiskan, SGID (Set Group Identification), SUID (Set User Identification), umask (default file and directory creation)
Üstad Hakan Sönmez’e çok teşekkür ederim bu yazısı için benim için çok faydalı oldu.Umarım sizin işinizede yarar. Konunun forumdaki sayfası
http://forum.pardus-linux.org/viewtopic.php?t=2141



