/bin dizinindeki anlamadıklarım

Başlatan taramtula, 15 Mayıs 2016 - 21:32:44

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

taramtula

ubuntuyu öğrenmeye çalışıyorum. 16.04 LTS dağıtımını kullanıyorum. 
/bin klasörüne gidip, ls -l ile içindekileri listelettiğimde, dizin içindeki diğerlerinden farklı olarak, üstü boyalı ve farklı renkte bazı yazılar görüyorum. bunlar şunlar :
*fusermount
*su
*umount
*ping
*ping6
*ntfs -3g

arkadaşlar bana bunları açıklar mısınız ? bunları diğerlerinden farklı yapan nedir ?

bugra9

dircolors -p > a.txt
komutunu çalıştırdığında, bulunduğun dizinde a.txt isimli bir dosya oluşup renk bilgilerini içerisine yazacaktır. Bende doluşan dosyayı incelersek

Renkler,

# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white


ve nelerin nasıl renklendirildiğinden bazıları,

RESET 0 # reset to "normal" color
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
MULTIHARDLINK 00 # regular file with more than one link
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
MISSING 00 # ... and the files they point to
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
EXEC 01;32


Senin belirttiğin dosyalar ben de arkaplan rengi kırmızı ve yazı rengi beyaz görünüyor yani 41=red ile 37=white renk kodlarına sahipler. Bu renk kodları
SETUID 37;41 # file that is setuid (u+s)
satırında bulunuyor yani bu şekilde gösterilen dosyaların "s" bitine sahip olduğunu görüyoruz. Sağlamasını yaparsak,


bugra@bugra:/bin$ ls -l
-rwsr-xr-x 1 root root   30800 Mar 11 17:43 fusermount
-rwsr-xr-x 1 root root   40152 Nis 13 19:51 mount
-rwsr-xr-x 1 root root  142032 Şub 18 00:45 ntfs-3g
-rwsr-xr-x 1 root root   44168 May  7  2014 ping
-rwsr-xr-x 1 root root   44680 May  7  2014 ping6
-rwsr-xr-x 1 root root   40128 Mar 29 12:25 su
-rwsr-xr-x 1 root root   27608 Nis 13 19:51 umount

yukarıdaki belirttiğin dosyaların hepsinde "s" bitinin olduğunu görürsün. Diğer hiçbir dosyada "s" biti bulunmuyor.

betseg

Bu "s"nin ne demek olduğunu da ben elimden geldiğince açıklamaya çalışayım. Biliyorsundur, Linux'ta her şeye dosyaymış gibi davranılır. Örneğin diskinin bölümleri, kablosuz aygıtlar, yazıcılar Linux'ta dosya olarak nitelendirilir. Ayrıca bu dosyaların kendi izinleri vardır, o dosyayı kimin okuyabileceğini, kimin yazabileceğini ve kimin çalıştırabileceğini kontrol eder.


O bulduğun dosyaların izinleri şu şekilde: -rwsr-xr-x
Şu şekilde ayırabiliriz: - rws r-x r-x

İlk bölüm dosya mı dizin mi lokya kısayol mu olduğunu belirtir. Boş olduğu için normal bir dosyadır.

İkinci kısım dosyanın "sahibinin" (ki burada root) o dosya hakkındaki izinlerini belirtir. İkinci kısım o sahibin mensubu olduğu bir grubu belirtir. O gruptaki herkes o haklara sahiptir. Son kısım ise geri kalan herkestir.

r okuma, w yazma, x ise çalıştırabilme hakkıdır. Demek ki o dosyalarda grubun ve diğer herkesin okuma ve çalıştırma hakkı varmış, root'unsa okuma ve yazma hakkı ve s diye bir şey.

Bu s ise bu dosyayı kim çalıştırırsa çalıştırsın, dosyanın sahibi çalıştırmış gibi olmasını sağlar.


En başta her şeye dosya gibi davranılır demiştim ya, mesela mount komutu bu dosyaların okunup yazılmasını ve dosya sistemine bağlanması işini yapar. Çoğu kullanıcının ise buralara izni yoktur. Ana bu s sayesinde sudo ile, root ile uğraşmadan bunların yapılmasını sağlar çünkü s dosyası root gibi çalıştırmanı sağlar.


Bu gibi izin değişimleri hakkında
man 1 chmod
ile daha çok bilgi alabilirsin. manpages-tr adlı paketi kurarak Türkçe man sayfalarına bakabilirsin.