Pazar, Temmuz 29, 2007

Solaris 10 Senaryo çalışması - 2

    • Kullanıcılar gruplara dahil edilir.

      1. User01-user05 Muhasebe Dpt. Grubuna eklenir. Ikinci grubu GM’dir.

useradd –u 1000 –g muhasebe –G gm user01

      1. user06-user10 Denetim Dpt. Grubuna eklenir. Ikinci grubu GM’dir.

useradd –u 1006 –g denetim –G gm user06

    • Şifre ataması yapılır

      1. User01-05 arası kullanıcılara root şifre ataması yapar. Değiştirmeleri gerekmez.

#passwd user01,

#passwd user02

      1. User06-10 arası kullanıcılar ilk kez logon olduklarında sistmein şifre sorması zorunludur.

#passwd –u user06

#passwd –u user07

      1. Tüm kullanıcılar 45 gün sonra şifrelerini zorunlu olarak değiştirecek şekilde ayarlanırlar.

Vi /etc/default/passwd

MAXWEEKS=6

    • Geçici kullanıcılara hesap oluşturulur.
      1. Muhasebe için stajyer01 hesabı açılır. 15 gün süreyle çalışacak ve sonra disable olacak şekilde ayarlanır. Logon olduğunda MOTD görüntülenir.

Useradd –u 1100 –g muhasebe –c “stajyer01 muhasebe dpt” –s /bin/bash –d /export/home/stajyer01 –m stajyer01

Passwd –u stajyer01

Vi /etc/shadow

Stajyer01:efldsfoıhrefn:13712:::::12347777700: epoch time conversion

      1. Denetim için stajyer02 hesabı açılır. 30 gün süreyle çalışacak ve sonra disable olacak şekilde ayarlanır. Logon olduğunda MOTD görüntülenir

Useradd –u 1101 –g denetim –c “stajyer02 denetim dpt” –s /bin/bash –d /export/home/stajyer02 –m stajyer02

Passwd –u stajyer01

Vi /etc/shadow

Stajyer01:efldsfoıhrefn:13712:::::12347777700: epoch time conversion

    • Ünvanı değişen kullanıcılarda değişiklik yapılır.
      1. User01 ve User06 Mudur olurlar. Tanımları değiştirilir. Üçüncü grupları Mudurler olur.

Usermod –c “mudur muhasebe” –G gm,mudurler user01

Usermod –c “mudur denetim” –G gm,mudurler user01

    • Şirketten ayrılan kullanıcı hesapları silinir.

1. User 04 işten ayrılır. Hesabı silinir. Kişisel Klasörleri kaldırılır

Userdel –r user04

2. User 06 işten ayrılır. Hesabı silinir. Kişisel Klasörleri başkasına devredilir user10.

Userdel user06

Chown –R user10 /homedir/user06

3. User 09 1 ay süreyle izine çıkar. Hesabı disable edilir. Döndüğünde tekrar açılır.

Passwd –l user09

  • Şifre politikası ve bağlantı şekilleri belirlenir.
    • Hesap kilitleme. 3 kere şifresini yanlış giren kullanıcının hesabı 15 dk kilitli kalır.

Vi /etc/default/login

RETRIES=3

Vi /etc/security/policy.conf

LOCK_AFTER_RETRIES=YES

    • Süresinin dolması. Her kullanıcı 45 günde bir zorunlu olarak şifre değiştirir.

vi /etc/default/passwd

MAXWEEKS=6

veya

Passwd –n 1 –x 45 user01

    • Kilitlenen hesabın yeniden açılması.
      • User06 şifresini yanlış girince hesabı kilitlenir. Root hesabı açar.

Passwd –f user06

Passwd –u user06

Passwd –f user01 (bunu tercih ederim, mevcut şifreyle gir ama değiştir)

    • Kullanıcıya hesabını ilk kez kullanırken şifre girmeye zorlamak
Passwd –u user01

Perşembe, Temmuz 19, 2007

Solaris 10 Senaryo çalışması - 1

  • Standart bir solaris 10 sistemi kurulur.

  • /yedek ve /yedek2 klasörü açılır. (İleride kullanıcıların erişim yetkilerini test etmek amacıyla kullanılacaktır.)

Mkdir /yedek

mkdir /yedek2

  • X şirketindeki kullanıcılar için
    • Dahil oldukları departmanları temsil eden gruplar oluşturulur.
      1. Muhasebe grubu oluşturulur. Açıklama yazılır.

/usr/sbin/groupadd –g 700 muhasebe

      1. Denetim grubu oluşturulur. Açıklama yazılır.

/usr/sbin/groupadd –g 701 denetim

      1. “genel mudurluk” grubu oluşturulur. Açıklama yazılır.

Genelmudurluk ismi çok uzun olmasına rağmen ve hata mesajıyla uyarmasına rağmen /etc/group dosyasına kayıt etti.

/usr/sbin/groupadd –g 702 gm

      1. Mudurler grubu olusturulur.

/usr/sbin/groupadd –g 703 mudurler

    • Tüm kullanıcılar için logon scriptler hazırlanır.
      • User01-10 arası kullanıcı hesapları oluşturulacaktır.

      1. User01-User03 arasının shell csh’dir. Path’e ilave olarak /export/home/%HOMEDIR% eklenir. Prompt “Working Directory = pwd” dir.

useradd –u 1000 –g 700 –s /bin/csh user01

cd /etc/skel

touch .login

vi .login

set path=($path ~)

set prompt=’pwd’

      1. User 04-07 arasının shell bash’dir. Path’e ilave olarak /yedek eklenir. Prompt “Shell Name User State Pwd >” dir.

useradd –u 1000 –g 700 –s /bin/bash user04

cd /etc/skel

touch .profile

vi .profile

PS1=”\s@\h ‘pwd’ >”

PATH=$PATH:/yedek

      1. User 08-10 arasının shell sh’dir. Path’e ilave olarak /yedek2 eklenir. Prompt “Shell Name User State Pwd >” dir.

useradd –u 1000 –g 700 –s /bin/sh user08

cd /etc/skel

touch .profile

vi .profile

PS1=”\s@\h ‘pwd’ >”

PATH=$PATH:/yedek

    • Çalışma ortamı oluşturulur.

      1. Tüm kullanıcılar için Message of the day hazırlanır.

vi /etc/motd

*************************************

Her gun spor yapın, kalbinizi koruyun

*****************************************

      1. user01-03 arası kullanıcılar logon olduklarında who komutu çalışır.

Echo who >>/etc/.login

      1. user 04 logon olduğunda prstat çalışır

echo prstat >>/export/home/user04/.login

echo prstat >>/export/home/user04/.profile

Solaris 10 Senaryo çalışması (Giriş)

Solaris öğrenmeye başladığımdan bu yana farkettiğim (ne yazık ki uzun zamandır unuttuğum) şeylerden biri de, bir şeyi öğrenmek için en hızlı ve garantili yollardan birinin öğrenilmesi gereken şeyi gerçek sistemlerde veya benzer ciddiyette bir ortamda denemek olduğuydu. Geçenlerde yazdığım, ilk gerçek ortam sunucuma dair yazı ve o kurulum süreci de zaten bu fikrimi doğruluyordu ( O sunucuyu hala devreye alamadık, yurtdışından Oracle ve diğer yazılımın kurulumu için henüz gelen olmadı :) )

Yukarıdaki düşünceden hareketle bugüne kadar öğrendiklerimi bir senaryo hazırlayarak orada kullanmak gibi bir fikir oluştu bende. Windows tabanlı sunucu yönetimi ve kullanıcı isteklerine dair deneyimlerimi kullanarak bir senaryo ve istekler belgesi hazırladım ve üzerinde çalışmaya başladım.

Kurduğum sistemin X şirketinde kullanıldığını, muhasebe ve denetim dptları için kullanıcı hesapları açtığımı varsaydım. Bu kullanıcılar farklı shell'ler kullanıyorlar ve açılış sırasında farklı değişkenlerle çalışıyorlar. Sanki bir windows sunucusunda logon script yazıyormuş gibi varsaydım bu işlemleri yaparken.

Bu kullanıcı hesaplarının yönetilmes gerekiyor. İşten ayrıldığı için hesabının kapatılması gerekenler, kişisel klasörleri işten ayrılınca başkasına devredilen kullanıcılar var. Müdürlüğe terfi ettiği için özlük bilgileri değişenler vs.

Sunucu üzerinde bir şifre politikası uygulanmaya başlanıyor ve hesap kilitleme devreye alınıyor.

Bu sunucu aynı zamanda bir dosya sunucusu ve yazdırma sunucusu olarak da kullanılıyor. Paylaştırılmış klasörlerle ilgili gerçek bir şirkette yaşanabilecek her türlü sevimsiz durumu bu senaryoda hatırlamaya çalıştım. Elbette yedeğinin alınması gerekiyor. Hatta arada sunucu çöküyor, kurtarılması için çaba harcanıyor. Zaman zaman bakım işlemleri yapılıyor, ek diskler takılıyor vs.vs.

Performans izleme , yama yükleme, kaldırma vb. durumları da ilave etmeye çalıştım.

Aşağıda ve bundan sonraki günlerde bir kaç bölüm halinde bu senaryo çalışmasının soruları-cevapları gibi değerlendirilebilecek bir yazı dizisi yayınlayacağım. İtiraf ediyorum ki bu çalışma sırasında "kuru kuru oku ve test et" ruh halinden kurtulup çok daha motive şekilde çalıştım. Normalde 12.00'de yatarken çalışma süresince 3-4'ten önce yatmadım :) Bir çok ek bilgi edindim ve inanıyorum ki çok miktarda ham veri artık aklımda pekişti. Bundan sonra da mutlaka benzer çalışmalar yapacağım.

Bu dizi bittikten sonra da ayrı bir belge halinde "senaryo çalışması sırasında öğrendiklerim" diye ayrı bir karalama notları belgesi de arkasından gelecek.

Toplamda tüm bu bilgilerin kişisel çalışmalarım sırasında okuma, araştırma, deneme, yanılma ve sonuçları yorumlama yöntemleri ile elde edildiği unutulmamalı. Her ne kadar elimden geldiğince en hatasız şekilde yazmaya çalıştıysam da henüz "Junior" bir Solaris Admin olduğum unutulmazsa ve tüm bu bilgiler sağlamlığına güvenilen kaynaklardan doğrulanarak kullanılırsa içim daha rahat edecektir. İleride kimsenin arkamdan küfür etmesini istemem elbette.

Perşembe, Temmuz 12, 2007

Solaris Disk Partioning

Solaris sistemlerinin disklerinin nasıl bölümlendirilmesi (partitioning) gerektiği hakkında sonunda yararlı ve fikir verici bir belge buldum. Şu konuya kafa yorduğum kadar başka şeylerle uğraşsaydım şimdiye kadar herhalde sınavlara hazır hale gelmiş olurdum.

http://www.sun.com/blueprints/1002/817-0407-10.pdf

Çarşamba, Temmuz 11, 2007

Find komutu kullanım örnekleri

Find komutunun iyi kullanım örnekleri aşağıda bulunuyor. Daha fazlası için esofthub'ın blogunu ziyaret edebilirsiniz.

http://esofthub.blogspot.com/2007/07/using-common-unix-find-command_07.html

Find a file or directory
# find . -name TEMP -print
or
# find . -name TEMP -exec echo {} \;

Find core files in this directory tree and remove them
# find . -name "core" -exec rm -f {} \;

Find junk directories and remove their contents recursively
# find . -name "junk" -exec rm -rf {} \;

Find a pattern in a file using the recursive grep (ignore case)
# find . -type f | xargs grep -i MYPATTERN

Find files modified in the past 7 days
# find . -mtime -7 -type f

Find files owned by a particular user
# find . -user esofthub

Find all your writable directories and list them
# find . -perm -0777 -type d -ls
or
# find . -type d -perm 777 -print

Find all your writable files and list them
# find . -perm -0777 -type f -ls
or
#find . -type f -perm 777 -print

Find large file sizes and list them
# find . -type f -size +1000 -ls
or
# find . -type f -size +1000 -print

Find how many directories are in a path (counts current directory)
# find . -type d -exec basename {} \; | wc -l
53

Find how many files are in a path
# find . -type f -exec basename {} \; | wc -l
120

Find all my pipe files and change their permissions to all writable
# find . -name "pipe*" -exec chmod 666 {} \;

Find files that were modified 7 days ago and archive
# find . -type f -mtime 7 | xargs tar -cvf `date '+%d%m%Y'_archive.tar`

Find files that were modified more than 7 days ago and archive
# find . -type f -mtime +7 | xargs tar -cvf `date '+%d%m%Y'_archive.tar`

Find files that were modified less than 7 days ago and archive
# find . -type f -mtime -7 | xargs tar -cvf `date '+%d%m%Y'_archive.tar`

Find files that were modified more than 7 days ago but less than 14 days ago and archive
# find . -type f -mtime +7 -mtime -14 | xargs tar -cvf `date '+%d%m%Y'_archive.tar`

Find files in two different directories having the "test" string and list them
# find esofthub esoft -name "*test*" -type f -ls

Find files in two different directories having the "test" string and list them
# find esofthub esoft -name "*test*" -type f -ls

Find files in two different directories having the "test" string and count them
# find esofthub esoft -name "*test*" -type f -ls | wc -l
12

Find files and directories newer than CompareFile
# find . -newer CompareFile -print

Find files and directories older than CompareFile
# find . ! -newer CompareFile -print

Find files and directories but don't traverse a particular directory
# find . -name RAID -prune -o -print

Find all the files in the current directory
# find * -type f -print -o -type d -prune

Find an inode and remove
# find . -inum 968746 -exec rm -i {} \;