|
Xaroon -> Sistem acilis dosyalari (25 Eylül 2004; 15:43:14)
|
Linux makinasi açilirken onlarca dosyayi okur. Birkaç dakika içinde çekirdegi hafizaya yükler, belirli dizinlerin altindaki programlari arkaplanda çalistirir. Sistem uyanirken hatiri sayilir nicelikte konfigürasyon dosyasi elden geçer. Açik bir isletim sistemini digerlerinden ayiran bir özellik de kullanicinin büyük bir kolaylikla bu konfigürasyon dosyalarini degistirebilmesidir. Sistem açilis dosyalarinda, özellikle ag temelli dosyalarda degisiklik yapabilmek için TCP/IP konusunda basit temelleri anlayabilmis olmaniz gerekir. Açilis dosyalarinda, tek bir kullanici için veya sistemde hesabi olan herkese yönelik olarak degisiklik yapmak mümkündür. Pek çok kullanici bu açilis dosyalariyla oynayarak Linux'u daha yakindan ögrenme imkanina sahip olur. Internet servisi veren bir makina bu servisini daemon'lar araciligiyla yapar. Bir daemon, her makina tarafindan bilinen bir port numarasini açar ve dinlemeye koyulur. Eger sorumlu oldugu port adresine istek gelirse bu istege cevap vererek servise baslar. Bash kabugunun anlatildigi konu içinde sisteme girerken okunan dosyalari anlatmistim. Sistemde yeralan önemli dizinler de dosya sistemi yapisi konusunda detayli olarak belirtilmisti. Bu bölümde daemonlardan kisaca bahsedip açilis aninda çalistirilan programlara ve bunlarin konfigürasyon dosyalarina kisa bir giris yapilacaktir. inetd ve /etc/inetd.conf inetd, en agir görevleri üstlenen ve en önemli Internet servislerindendir. Bu program sistem açilirken arkaplanda çalismaya birakilir. inetd'nin görevi belirli portlari dinleyerek bu portlara yapilan baglantilari denetlemektir. Bir baglanti yapildigi anda inetd bu portla ilgilenecek olan programi çalistirir. Örnek olarak Linux'a ftp istegi geldigi anda inetd, ftp istegine cevap verecek olan wu.ftpd programini uyandirir ve geri kalanini bu programa birakir. inetd olmasaydi her standart port numarasi için bu portu dinleyecek olan bir program arkaplanda çalisiyor olacakti. Bu da sisteme normalden daha fazla yükün binmesi demektir. inetd'nin kullandigi konfigürasyon dosyasi /etc/inetd.conf 'tur. Bu dosyadan bir bölüm asagida yeralmaktadir : # "kill -HUP <pid of inetd>". # The inetd will re-read this file whenever it gets that signal. # # <service_name> <sock_type> <proto> <flags> <user> <server_path> <args> # time stream tcp nowait root internal time dgram udp wait root internal ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd #nntp stream tcp nowait root /usr/sbin/tcpd in.nntpd shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L login stream tcp nowait root /usr/sbin/tcpd in.rlogind ntalk dgram udp wait root /usr/sbin/tcpd in.talkd pop3 stream tcp nowait root /usr/sbin/tcpd in.pop3d imap2 stream tcp nowait root /usr/sbin/tcpd imapd finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd -w systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx netstat stream tcp nowait root /usr/sbin/tcpd /bin/netstat -a # End of inetd.conf. /etc altinda bir konfigürasyon dosyasini degistirmek isterseniz, o dosyayi okuyan ve arkaplanda çalisiyor durumda bulunan süreçleri bundan haberdar etmelisiniz. Çünkü bu dizindeki bazi dosyalar sadece açilista okunur. inetd, yukaridaki inetd.conf dosyasini sistem açilirken okuyacaktir. Degisiklik yaptiktan sonra inetd'nin bu degisiklikten tekrar haberinin olmasi için bu sürecin PID numarasini ps -aux komutu ile bir kenara not edin ve sunlari yazin. # kill -HUP <PID-inetd> PID-inetd yerine not ettiginiz süreç numarasini girmelisiniz. Bu sayede inetd kendisine ait olan inetd.conf dosyasini tekrar okuyacak ve degisiklikler isleme konacaktir. Her bilgisayar tarafindan bilinen servislerin isimleri ve hangi portlari kullandiklari /etc/services dosyasinda tutulur. syslogd ve /etc/syslog.conf syslogd programi Linux'taki çesitli olaylarin kayitlarini tutar. Bunlar genellikle hata mesajlari veya çekirdek mesajlari gibi kayitlardir. syslogd sistem açilirken arkaplanda islemeye birakilir. /etc/syslog.conf, syslogd programinin konfigürasyonu için kullanilir. Normal olarak sistem kayitlari /usr/adm/messages dosyasinin sonuna eklenir. Bu dosyanin yapisi biraz karisik olmasina ragmen eger sistem yöneticiyseniz syslogd sizin en büyük yardimciniz olabilir. Örnek bir syslog.conf dosyasi asagida yeraliyor. *.info;*.notice /usr/adm/messages *.debug /usr/adm/debug *.warn /usr/adm/syslog *.emerg;*.alert;*.crit /dev/tty8 mail.* /dev/tty9 kern.* /dev/tty10 Bu dosyanin en solunda yeralan ve nokta ile ayrilmis olan iki kelimeden ilki, kaydi yapilan program grubudur. Bu kisma kern (çekirdek mesajlari), mail (sendmail mesajlari), login (sisteme giris veya sistemden çikis mesajlari), auth, authpriv veya security (güvenlik mesajlari), cron (cron mesajlari), daemon (deamon'lardan gelen mesajlar), lpr (yazici mesajlari), news (haber grubu mesajlari), user (kullanici mesajlari) veya uucp (uucp mesajlari) yazilabilir. Noktanin sagindaki kelime ise kaydi yapilan program grubunun mesaj önem sirasini belirler. Bu kisimda önem sirasina göre debug, info, notice, warning, err, crit, alert ve emerg bulunur. Dosyanin saginda yeralan kisimda ise bu mesajlarin hangi dosyaya yazilacagi vardir. Yukarida verilen örnekte, syslogd'den gelen mesajlar sanal konsollardan kullanilmayanlara yönlendirilmistir. Böylece sistem yöneticisi F8, F9 ve F10 tuslarini kullanarak sistem kayitlarina aninda ulasabilir. Baska bir makinaya kayit tutturmak da mümkündür. Uzak makinanin ismi syslog.conf dosyasinin sag bölümüne yazilir. Böylece diger makina yerel olarak sistem kayitlarini tutacaktir. mail.err @hun.linux.org.tr.tr Bazi kritik ve sistemin düzgün çalismadigini haber verebilecek mesajlarin konsola yönlendirilmesinde fayda vardir. kern.crit /dev/console Sisteme baglanmis olan kullanicilar hakkinda bilgiyi ise /var/adm/wtmp dosyasi tutar. Bu dosya ASCII olmadigindan dogrudan okunamaz, last komutu ile içerigi incelenebilir. Buna ek olarak çesitli paketler çalistiriliyorsa onlarin yarattigi kayit dosyalari da incelenmelidir. Örnegin ftp çalisiyorsa /var/adm/xferlog kimin ftp ile hangi dosyalari aktardigini gösterir. Bu tür dosyalar içerisinde elde edilebilecek ipuçlari ile sistemin çalisma performansi artirilabilir, kendisini pek belli etmeyen hatalar bulunabilir. init ve /etc/inittab init, sistemde ilk çalisan programdir. Neredeyse sistemin tüm açilis yükünü elinde tutar. init sayesinde açilis aninda hangi programlarin çalisacagi belirlenir. Bu programlari da /etc/inittab dosyasindan ögrenir. Burada /etc/inittab dosyasindan alinan birkaç örnek satir yeraliyor. Her satirin sonunda belirtilen düzeni için çalistirilacak olan dosyalar vardir. # Default runlevel. id:3:initdefault: # System initialization (runs when system boots). si:S:sysinit:/etc/rc.d/rc.S # Script to run when going single user (runlevel 1). su:1S:wait:/etc/rc.d/rc.K # Script to run when going multi user. rc:23456:wait:/etc/rc.d/rc.M # What to do at the "Three Finger Salute". ca::ctrlaltdel:/sbin/shutdown -t5 -rfn now # Runlevel 0 halts the system. l0:0:wait:/etc/rc.d/rc.0 # Runlevel 6 reboots the system. l6:6:wait:/etc/rc.d/rc.6 # What to do when power fails (shutdown to single user). pf::powerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING" # If power is back before shutdown, cancel the running shutdown. pg:0123456:powerokwait:/sbin/shutdown -c "THE POWER IS BACK" # If power comes back in single user mode, return to multi user mode. ps:S:powerokwait:/sbin/init 5 c1:1235:respawn:/sbin/agetty 38400 tty1 linux c2:1235:respawn:/sbin/agetty 38400 tty2 linux c3:1235:respawn:/sbin/agetty 38400 tty3 linux c4:1235:respawn:/sbin/agetty 38400 tty4 linux c5:1235:respawn:/sbin/agetty 38400 tty5 linux c6:12345:respawn:/sbin/agetty 38400 tty6 linux # Serial lines #s1:12345:respawn:/sbin/agetty 19200 ttyS0 vt100 #s2:12345:respawn:/sbin/agetty 19200 ttyS1 vt100 # Dialup lines #d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100 #d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100 x1:4:wait:/etc/rc.d/rc.4 Bir Linux makinasinin birkaç tane çalisma düzeni vardir. Bunlardan birkaçi 3 (çok kullanicili konum), 1 (tek kullanicili konum) ve 4 (X Window konumu)'tür. Her konum, bir sayi veya bu sayilara karsilik gelen tek harften olusur. Bir konum altinda çalisirken digerine geçebilmek için init veya telinit komutu kullanilir. /etc/inittab'da yeralan dosya isimleri degistirilebilir veya kullanicinin istegi dogrultusunda her çalisma modu için farkli dosyalar çalistirilabilir. # init 1 Switching to runlevel 1 Sending all processes the TERM signal Waiting for processes to terminate........ Turning off quota.. Single user mode. init komutundan sonra açmak istediginiz çalisma düzenine ait olan sayiyi yazabilirsiniz. Örnegin init 0 komutu sistemi kapatacaktir. Yukaridaki komut çalistiktan sonra /etc/inittab dosyasinda bu konuma ait olan /etc/rc.d/rc.K dosyasi çalistirilir. Bu dosya çalistiktan sonra disaridan yapilan baglantilara izin verilmez. /etc/inittab dosyasinda yapilacak her degisikligin ardindan # init q komutunu vererek init programinin inittab dosyasini tekrar okuyup degisikliklerden haberdar olmmasini saglamalisiniz. O an sistemin hangi konumda çalistigini bulabilmek için runlevel komutunu kullanin : $ runlevel N 3 Sistem, yukaridaki bilgilere göre 3 numarali konumda (çok kullanicili konum) çalisiyor. /etc/rc.d/* Dosyalari Iste sistemin kalbinin attigi yer. Ne yaparsaniz yapin ama bu dosyalari gözünüz gibi koruyun. Sistem açilirken arkaplanda çalismaya baslayan programlar burada yazilidir. Tüm bu dosyalar Slackware dagitimina özgüdür. rc.0 Bu dosya, 0 (halt) çalisma düzenine geçerken okunur. Sistemin shutdown veya halt komutlari ile kapatilmak istenirse bu program çalistirilir. Önce sistemdeki tüm süreçler öldürülür, ardindan sistemin kapandigini belirten bazi satirlari kayit dosyalarina atar. Tüm dosya sistemlerini umount isleminden geçirdikten sonra da sistemi dondurur. rc.K Bu dosya, init tarafindan 1 numarali çalisma düzenine (tek kullanicili konum) geçilirken çalistirilir. Tüm süreçler öldürülür ve sistem sadece konsoldan giris yapilacak sekilde tekrar açilir. rc.cdrom Bu dosya, buldugu CDROM sürücüsünü /cdrom dizini altina mount yardimiyla baglar. rc.local Çok kullanicili açilis aninda çalistirilan bu dosyaya istediginiz programlari ekleyebilirsiniz. rc.4 4 numarali çalisma düzenine geçilirken bu dosya çagirilir. Tüm sanal konsollara vt100 terminalleri yerine grafik tabanli bir program kullanilarak girilir. rc.M init tarafindan çok kullanicili konuma geçmek için kullanilir. rc.S Sistem açilirken bu dosya mutlaka çalistirilir. Takas alani açilir, dosya sisteminde hata olmasi halinde bunu gidermeye çalisir. Bazi kontrollerden sonra kontrolü diger rc programlarina birakir.
|
|
|
|