Linux Sistem Yönetimi

Başlatan SpeeDyy-_-Mami, Ekim 04, 2008, 22:31:17

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

SpeeDyy-_-Mami

Dikkat : Tesekkür Etmek Istiyorsaniz Lütfen Butonuna Basiniz..

Bir işletim sistemi, marka ve modeli ne olursa olsun bakım isteyen bir araçtır. Yapılacak küçük bir hata, veya hatayı gösteren bir işaretin gözardı edilmesi, zaten değerli olan zamanın boşa gitmesine neden olabilir. Linux'a, sorumluluk sahibi sistem yöneticisi tarafından açık tutulduğu süre içinde verimli ve düzgün çalışması için gerekli özen gösterilmelidir. İnternet üzerinde üzerinde 500 kullanıcı olan , veya ftp.linux.org adresi gibi her hafta onbinlerce ziyaretçisi olup ağır sorumluluklar yüklenen Linux makinaları vardır. Bunların birkaç dakika boyunca bile kapalı kalması, o anda bağlanmayı bekleyen pek çok kullanıcıyı mağdur durumda bırakacaktır.

Performansı etkileyen unsurların başında, önlemek pek de elinizde olmasa da elektrik kesintileri ve makinanın kapalı olduğu zamana denk gelen çekirdek değişimleridir. Bu tür donanımsal etkileri bir tarafa bırakırsak sistem yöneticisinin uyması gereken ve İnternet etikleri dediğimiz davranış kuralları vardır. Bu kurallara öncelikle sistem sorumlusu uymalı ve kullanıcıları da uymaya zorlamalıdır. Açık işletim sistemlerinin en büyük sorunlarından biri olan güvenlik konusuna sistem yöneticisi belirli günler zamanının bir bölümünü ayırmalıdır. Kullanıcılardan gelebilecek her türlü saldırı, sisteme onarılması zor zararlar verebilir. Bunun için düzenli olarak sistemi kontrol edin ve şüpheli durumlarda araştırma yapmaktan çekinmeyin. Bu konuda daha fazla bilgiyi Linux İşletim Sisteminde Güvenlik başlığı altında bulabilirsiniz.

Yukarıdaki tabloya bakarak işinizin zor olduğu kanısına kapılmayın, zira tüm bu denetleme mekanizmasını basitleştirebilirsiniz. Yapılacak tüm rutin işleri bir program haline getirin. Günün veya haftanın belirli saatlerinde bu programı çalıştırın ve olabilecek tüm hata mesajlarını bir dosyaya yazın. Bu dosyayı boş bir vakitte inceleyerek programın ne kadar düzgün çalıştığını gözlemleyebilirsiniz. Bunun yanında sistem yönetimini zevkli kılacak uygulama programları da vardır. Bu uygulama yazılımlarından bazıları o kadar gelişmiştir ki neredeyse yapamadıkları tek iş yemek pişirmektir.

Yabancı kaynaklı yayınlardan Essential System Management (Frisch) ve Essential System Administration (O'Reilly) bu yönde tavsiye edilebilecek kitaplar. Piyasada bulunan Türkçe kitapların hiçbirisinde sistem yönetimine ciddi olarak değinilmediği için Türkçe yayın bulmak gayet zor.

Yetkili Kullanıcı ve Diğer Kullanıcılarla İlişkiler

Sistemin en büyük sorumlusu root şifresini bilen kullanıcıdır. Yukarıda da belirtildiği gibi bu şifrenin sorumluluğu büyüktür. Sistem yöneticisi, makinadaki kullanıcıların isteklerini ve şikayetlerini yönelttikleri tek merci durumundadır. Burada karşılıklı güven sözkonusudur, bunu da sistem görevlisi herkese hissettirmelidir. root kullanıcısının, başkalarından gözünüz gibi sakladığınız e-posta ve dosyaları sizden habersiz okuduğunu öğrenseydiniz tepkiniz ne olurdu?

root kullanıcısının sahibinin haberi olmaksızın sistem kullanıcılarına ait dosyaların yerini ve izinlerini değiştirmesi de uygun değildir. Zorda kalsanız bile, başkalarına ait hiçbir dosyayı silmeyin veya içeriğini değiştirmeyin. Belki de çözümsüz gibi görünen bir durumdan kurtulmanın başka bir yolu olabilir.

Temel olarak zaman zaman kullanıcıları bilgilendirmek hoş bir davranış olarak karşılanır ve onların Linux'a olan ilgilerini perçinleyebilir. Örneğin /etc/motd ve /etc/issue dosyalarına periyodik olarak çekirdek değişimlerini ve eklenen uygulama programlarını haber veren birkaç satır iliştirebilirsiniz. Sistemde açılan her kullanıcı hesabına http://www.linux.org.tr/linuxtrfaq.htmlLinux Çokça Sorulan Sorular (Linux ÇSS), çeşitli UNIX belgeleri ve İnternet hakkında bilgilendirici dokümanlarının yeraldığı bir dizi e-posta da yollanabilir. Bu konuda yaratıcılığınızı konuşturun.

Sistem Kuralları

Kullanıcı hesabı açmadan önce birkaç basit kuralı tanımlayıp kullanıcılardan bunlara uymalarını istemelisiniz. En basitinden birkaç kural, bir hesabın birden fazla kişi ile kullanılmaması, sistemin güvenliğini zedeleyecek crack , COPS , SATAN gibi programların diğer kullanıcıların zararına çalıştırılmaması ve sistem kaynaklarının sorumsuzca tüketilmemesi olarak sayılabilir.

Siz, en iyisi yukarıda yeralan kuralları birkaç madde halinde yazın ve sistemdeki herkesin bu maddelere uyacağını taahhüt eden imzasını alın. Tatsız durumların çıkmaması için de önlem almayı ihmal etmeyin.

Kullanıcı İşlemleri

Aşağıda yeralan konularda, kullanıcı hesaplarının açılması ve kapatılması anlatılıyor.

Kullanıcı Hesabı Açmak (adduser)

Kullanıcı hesabı açmak iki yoldan yapılabilir. Birincisi, adduser komutu yardımıyla, diğeri de bu komutun yaptığı işlemleri sırasıyla elle yapmak. root olarak sisteme girin ve komutu çalıştırın. Bu aşamadan sonra bir komutu 'root' olarak çalıştırın dediğimiz zaman 'root' kullanıcısına geçiş yaptıktan sonra bu komutu çalıştırmanız gerektiğini biliyor olmalısınız.

# adduser

Login name for new user (8 characters or less) []: mehmet

User id for mehmet [ defaults to next available]:

Initial group for mehmet [users]:

Additional groups for mehmet []:

mehmet's home directory [/home/mehmet]:

mehmet's shell [/bin/bash]:

mehmet's account expiry date (MM/DD/YY) []:

OK, I'm about to make a new account. Here's what you entered so far:

New login name: mehmet
New UID: [Next available]
Initial group: users
Additional groups: [none]
Home directory: /home/mehmet
Shell: /bin/bash
Expiry date: [no expiration]

This is it... if you want to bail out, hit Control-C. Otherwise, press
ENTER to go ahead and make the account.


Making new account...

Changing the user information for mehmet
Enter the new value, or press return for the default

Full Name []: linux kullanicisi
Room Number []:
Work Phone []:
Home Phone []:
Other []:

Changing password for mehmet
Enter the new password (minimum of 6, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Bad password: too simple.
Warning: weak password (enter it again to use it anyway).
New password:
Re-enter new password:
Password changed.
Done...

Kullanıcının isminin 3 karakterden az, 8 karakterden fazla olmamasına özen gösterin. Sistem sizden kullanıcının gerçek ismini, ev dizinini, (genellikle /home içinde olur), grubunu isteyecektir. adduser komutu, eğer özel olarak değiştirmek istemezseniz her kullanıcının grup kimliğini (GID) kendisi tanımlayacaktır. Bu gruba karşılık gelen grup ismi (Group Name) users dır. Kullanıcı kimliği (UID = User ID) ise genellikle 500'den sonra gelen ve kullanılmayan ilk sayı olarak atanır. Eğer UID olarak 0 girerseniz sistemde sizinle beraber bir süper-kullanıcı daha yaratmış olursunuz :)

Sisteme girişte çalıştırılacak olan kabuk için seçimi ister kullanıcıya bırakın, isterseniz öntanımlı olarak bash verin. Bash'in sistemdeki tam patikasını (/bin/bash) yazmalısınız. Bu alana sadece kabuk ismi girmek şart değildir.

Yukarıda sistem bizi güçlü bir şifre seçmediğimiz için uyardı. Þifre olarak, herkesin kolayca tahmin edemeyeceği zorlukta, fakat kullanıcının bir yere yazmasını önleyici kolaylıkta bir kelime bulun. Kullanıcı, hesabının açılmasından hemen sonra sisteme girecekse ve şifresini değiştirecekse kısa ve kolay bir şifre yeterli olacaktır.

Her şeyin doğru olduğuna eminseniz, sorulan soruya ``y'' ile, değilseniz ``n'' ile cevap verin. Hemen ardından /etc/skel dizini altında yeralan tüm dosyalar bu kullanıcının dizinine kopyalanacaktır. Buraya, her kullanıcının ev dizinine önceden yüklenmesini istediğiniz sistem dosyalarını yerleştirebilirsiniz. Bu andan itibaren yeni kullanıcı sisteme girebilir.

Sisteme kullanıcı ekleme işlemini el yordamıyla yapmak isterseniz, /etc/passwd ve /etc/shadow dosyalarına birer satır eklemelisiniz. /etc/passwd'de aralarında birer ':' karakteri olmak kaydıyla sırayla hesap ismi, "x", grup kimliği, kullanıcı kimliği, kullanıcı isim ve soyadı, ev dizini ve kabuk programı yeralır. /etc/passwd içine bu satırı ekleyin:

ozgur:x:100:502:Misafir Sanatci:/home/ozgur:/bin/bash

/etc/shadow içine ise aşağıdaki satırı yerleştirin, tabi diğer satırlara dokunmadan.

ozgur::9990:0:99999:7::::

Bu satırda yeralan ikinci girdi mirkelam kullanıcısının şifresini belirtiyor. /etc/shadow dosyasına yazılacak olan şifreyi önce boş bırakıp, ardından passwd ozgur komutuyla bir şifre atayın.

/etc/shadow dosyasında kullanılabilecek parametreler için shadow(5) man dosyasına göz gezdirin.

Ardından /home/ozgur dizinini oluşturun. Dizinin grubunu da ayarlayın. Çok gerekli olmasa da gelen e-postalar için /var/spool/mail dizininde bir dosya tanımlayın ve /etc/skel içinde yeralan dosyaları kullanıcının dizinine kopyalayın.

# cp -R /etc/skel/* /home/ozgur
# mkdir /home/ozgur
# chown -R ozgur.users /home/ozgur
# touch /var/spool/mail/ozgur
# chown ozgur.mail /var/spool/mail/ozgur

Yukarıda yazılan elle kullanıcı girme işlemi, shadow kullanan Linux makinaları için geçerlidir.

Kullanıcı Grubu

Eğer Linux makinanız birkaç yoğun görev üstlenmişse (örneğin www veya ftp sunucusu olarak kullanılıyorsa) her bir işlem için birden fazla grup tanımlanabilir. users grubuna bağlı kalmadan wwwadm veya ftpadm gibi grup isimleri belirtebilir, bu grupları da bir veya birkaç kullanıcıya ait olacak şekilde değiştirebilirsiniz.

users grubunun dışında birden fazla grup tanımlanması, sistemin denetlenmesini bir miktar güçleştirse de sistem güvenliğini artırır. Bazı kullanıcıların birden fazla grubunun olmasıyla bu kullanıcılar rahatlıkla sistemde root kullanıcısının üstlenmesi gereken işleri yapabilirler.

Grup kimliğinin değiştirilmesi veya yeni grubun eklenmesi için /etc/group dosyası kullanılır. Bu dosyaya grubun ismi, numarası, grup şifresi ve gruba ait kullanıcılar yazılır. Her kullanıcının en az bir grubu vardır.

/etc/group dosyasının iki satırında yeralan parametreler,

root::0:root
sys::3:root,bin,sys,adm

gibidir. Sırayla ":" karakteri ile ayrılmış her kolon,

1.
Grup ismi
2.
Grup şifresi
3.
Grup numarası
4.
Gruba ait kullanıcılar

şeklinde özetlenebilir. İlk sütun grup ismini belirtir. Grup ismi, ls -l komutunu işletince kullanıcı isminin hemen sağında görülen kelimedir. Grup şifresi, gruba ait olmayan kullanıcıların dosyalarına erişim sağlamak için kullanılır.

Grup şifresi nadiren kullanılır. Grup numarası, kullanıcının ait olduğu grubun karşılığıdır. Son sütunda ise gruba ait kullanıcılar, her biri birer virgülle ayrılmış olarak yazılır. Kullanıcı sisteme girdiği zaman otomatik olarak /etc/passwd dosyasında yeralan grup ismi aktif olur, bu yüzden her kullanıcının ismi /etc/group dosyasına yazılmaz. Sistem ilk kurulduğu anda birkaç grup halihazırda zaten vardır. Örneğin root grubunun grup numarası 0'dır ve pekçok sistem dosyasının sahibidir, bin grubunun numarası is 2 olup /usr/bin ve /bin dizinlerindeki çoğu dosyanın grubudur.

Hangi grubun (veya tanımlanmışsa grupların) içinde olduğunuzu öğrenmek için groups komutunu kullanabilirsiniz.

ş groups gorkem
users

Kullanıcının Hesabının Silinmesi

Bir kullanıcıya ait hesabı silmek için /etc/passwd dosyasında bu kullanıcıya ait olan satırdaki şifre kolonunun başına * işareti koyun. Bir şifrelenmiş bir parolanın içinde * karakteri olamayacağından bu kullanıcı bir daha sisteme giremez.

Hesabı tamamen silmek için, kullanıcının ev dizinini ve e-postalarını yedekledikten sonra sistemde kullanıcıya ait olan dosyaları (/tmp altında) ve ev dizinini silin.

/etc/passwd ve /etc/group dosyasından kullanıcının isminin geçtiği satırları kaldırın.

Sistemde kullanıcıya ait olabilecek tüm dosyaları da silmeniz gerekebilir. Bunun için find kullanabilirsiniz.

ş find / -user gorkem -ls -exec rm {} \;

Bu komutu /etc/passwd dosyasından kullanıcı ismine ait olan satırı kaldırmadan önce yapmalısınız.

Sistemin Yedeklenmesi

Makinanızın belirli aralıklarla yedeklenmesi, sistem güvenliğinin bir parçası sayılabilir. Donanımdan meydana gelen bir hata sonucu veya yanlışlıkla girilen bir komut, sistemi açılamaz hale getirebilir. Ancak yedekleme ile bu tür kullanıcı hatalarının önüne geçebilirsiniz. Yedekleme genellikle tüm sistem üzerinde yapılmaz. Sadece önemli sistem bilgilerini içeren dizinler yedekleme aşamasına girmelidir.

Yedekleme üniteleri olarak teyp, disket veya başka diskler kullanılabilir. Teypler, büyük miktarda yedekleme işlemleri için ön plana çıksa da birkaç dosyadan oluşan paketlerin korunması söz konusu olacaksa disketler daha pratiktir. İnternet üzerinde ise bağımsız bir makina, kendi rutin görevi dışında yerel ağda bulunan makinaların yedeklerini belirli gün ve saatlerde almak üzere programlanabilir.

Sistemde fazla miktarda kullanıcı varsa yedekleme işlemi ciddi bir düzene oturtulmalıdır. Sistemdeki hayati dosyalar örneğin her hafta, üzerinde kullanıcıların bulunmadığı akşam saatlerinde yedeklemeye sokulabilir.

Yedekleme için birkaç yol önerilebilir. Kullanışlı olması için yedeklemeyi yapan program, yedeklenen dosyalar arasındaki belirli bir dosyayı kolayca açabilmelidir. Bunun yanında, yedek bilginin de bozulması ihtimali vardır. Yedeğin içindeki tek baytın bozulması, bazı durumlarda tüm yedeğin çöp yığını haline gelmesine yol açabilir. Doğru yedekleme programının kullanılması bu anda önem kazanır.

Yedeklenecek olan dizinlerden en önemlileri, sistem konfigürasyon dosyalarının yeraldığı /etc, kullanıcı dizinlerinin yeraldığı /home, bazı X Window dosyalarının bulunduğu /usr/X11/lib/X11 dizini altındaki bazı dosya ve dizinler, /usr ve /usr/local dizinde yeralan bazı dizin ve dosyalar ile /root dizinidir. Þart olmasa da yedekleme için yeriniz bolsa /tmp dizinini de koyabilirsiniz.

Elektronik postaları (/var/spool/mail) da unutmamak gerekir.

Aşağıdaki komut, /usr ve /home dizinlerini diskete yedekler.

ş tar cvMf /dev/fd0 /usr /home

tar komutununa verilen M parametresi yardımıyla bir disket dolduğu zaman başka bir diskete devam etmenizi sağlar. Dizinleri sıkıştırarak atmak için z seçeneğini vermek yeterli olur. Sıkıştırarak yedekleme disket ya da teypte yer kazandıracaktır, ancak hata olduğunda verilerin kurtarılması daha zor olacaktır. Açmak için

ş tar xf /dev/fd0

komutu yeterlidir. Sıkıştırılarak diskete atılan yedekler için açarken de "z" kullanın. Disketleri sıra ile numaralandırmayı ihmal etmeyin, yoksa bir disketten fazla yer kaplayan arşivleri açamazsınız.

Linux'ta gerek SCSI, gerek floppy teyp desteği vardır. Özellikle çok veri yedekleyecekseniz teypler kaçınılmaz olur. Teyplere yedek alırken de yukarıdaki floppy orneklerindeki gibi tar kullanabilirsiniz. tar'ın yanı sıra sıkça kullanılan yedekleme komutları arasında dump ve restore , cpio ve dd gösterilebilir. Linux'ta ilk SCSI teyp sürücüye /dev/st0, ikinciye /dev/st1 ... kullanarak, PC'lerde sıkça kullanılan ``floppy teyp''lere de /dev/ftape üzerinden erişebilirsiniz. Piyasada bulacağınız ortalama floppy teyplerin kapasiteleri 120M, 4mm SCSI teyplerin 4G, 8mm SCSI teyplerin ise 7G kadar olacaktır. Teybin kapasitesi kullandığınız sürücünün yeteneğine ve teybinizin uzunluğuna göre değişir. Örnek olarak, bütün sistemin tar kullanarak ilk SCSI teybe yedeklemek için,

# tar cvf /dev/st0 /

Bir TCP/IP ağınız varsa, ve birden fazla Linux ya da UNIX makinası kullanıyorsanız, tek bir teyp sürücü ile bütün makinalarınızın, hatta Windows makinalarınızın bile (Linux'un yardımıyla) yedeğini alabilirsiniz. Bu iş için amanda gibi daha özelleşmiş ve yedekleme işlemini otomatikleştiren bir program kullanabileceğiniz gibi, GNU tar'dan da yararlanabilirsiniz. Örneğin tar ile, cclub.metu.edu.tr makinasından, linux.org.tr makinasındaki floppy teybe yedek almak için,

# tar cvf linux.org.tr:/dev/ftape /home

komutundan yararlanabilir. Bu komutun çalışması için linux.org.tr makinasının root'unun .rhosts dosyasında cclub makinasının root'una izin verilmiş olması gerekir. Bu işlem güvenlik için sakıncalı olduğundan, bu iş için özel bir kullanıcı açmak gibi bir yönteme başvurulabilir. Örneğin linux.org.tr'da yedek adlı bir kullanıcı açtığımızı düşünelim. Bu durumda yukarıdaki komutu,

# tar cvf yedek@linux.org.tr:/dev/ftape /home

şeklinde yazabiliriz.

Sistemin Güncellenmesi

Tekrar Linux yüklenecek olan makina üzerinde halihazırda Linux bulunmasının yararları olduğu gibi bazı sakıncaları vardır. İlk olarak yararlarına değinmek gerekirse, yapılacak aslında sadece işletim sisteminin bulunduğu bölümü değiştirmektir. Takas alanının ayrılması, kullanıcı alanının ayrılması gibi işlemler bu durumda önceden yapılmış oluyorlar. Ancak yeni işletim sisteminin yüklenmesinin bazı zararları da var.

Herşeyden önce çalıştığı bilinen bir işletim sistemi yenisi ile değiştiriliyor. Gerçekten bunu gerektirecek bir sebep olmadıkça bu tür güncellemelerden kaçınılması veya en aza indirilmesi gerekir. Yeni bir sistem, yeni bilinmeyenler ve az olsa bile çalışmama riski getirecektir.

Eğer sistem üzerinde belirli hizmetler veriliyorsa o hizmetlere ilişkin verilerin bu güncelleme esnasında yok olmamasına dikkat edilmeli. Mesela makina bir web sunucu olarak kullanılıyorsa web dosyalarının bir şekilde yeni sisteme aktarılması gerekecektir .

Benzer şekilde güvenlik amacıyla makinaya ait tanımların (/etc) ve standart dağıtım dışında yüklenmiş paketlerin önceden yedeklenmesi gerekir.

Güncelleme için iki yöntem akla gelebilir, doğrudan yeni sistemi eskisinin üzerine bindirmek veya eskisini silerek yeniden yüklemek. Slackware sürümü için en sağlıklısı eski sistemi silmektir. Çünkü değişik dağıtımlarda dosya dağılımı farklılıklar gösterebilmektedir. Bunun sonucunda bazı dosyalar birden fazla yerde gözükebilmektedirler. Bir diğer sakınca ise setup yazılımının bazen bu durumda şaşırabilmesi ve hata vermesi. Bazı ticari Linux sürümleri (Red-Hat, Debian, Caldera gibi) eski sürümü silmeye gerek bırakmadan sistemi güncelleme özelliğine sahipler.

Güncellemeniz gerekebilecek dizinler, /var/spool/mail, kullanıcı dizinleri (root dahil), /usr altında gerekli dizinler, /var/adm/ ve /etc olarak sayılabilir. Bazen /etc içinde yer alan dosyaların yeri veya şekli değişmiş olabilir. Onun için en güvenlisi teker teker dosyaları inceleyip kopyalamaktır. Belirli dosyaları yeni sistemi kurduktan sonra hemen kopyalayabilirsiniz :

/etc/group
/etc/printcap
/etc/hosts
...

Daha önce shadow kullanmayan bir sistemden shadow sistemine geçiyorsanız, /etc/passwd ve /etc/shadow dosyalarında gerekli değişiklikleri yapmadan yeni yerine kopyalamayın.

Ayrıca ne olur ne olmaz diye çalıştığını bildiğiniz bir çekirdeği de yedeğe almayı ihmal etmeyin