Kompilasi Kernel

Kompilasi Kernel

Kernel berfungsi sebagai perantara antara program-program dengan hardware, tugasnya antara lain:
  • Mengatur memori bagi seluruh proses yang berjalan
  • Memastikan proses tersebut memperoleh pembagian siklus prosesor yang adil
  • Menyediakan interface yang portabel bagi program-program untuk berbicara ke hardware
Versi kernel ini ada 2 macam, yaitu versi stabil dan versi pengembangan. Versi stabil ditandai dengan penomoran versi yang genap, contoh 2.4.x atau 2.6.x. Sedangkan kernel yang merupakan versi pengembangan ditandai dengan nomor gaji, contoh 2.5.x atau 2.7.x. Kernel-kernel pengembangan ini bisa dibilang ada versi beta sebelum versi finalnya dikeluarkan.


Kernel sendiri dibagi 2 macam, yaitu:
  1. Kernel monolitik adalah kernel yang semua di-compile dari awal dan dimuat saat sistem boot. Kelebihannya adalah stabil, tetapi kelemahannya adalah kernel monolitik ini harus di-compile terlebih dahulu sebelum digunakan.
  2. Kernel modular adalah kernel yang dapat diinstall dan diuninstall. Kernel ini akan dimuat saat saat diperlukan. Salah satu contoh kernel modular ini adalah driver, seperti driver printer, VGA, dsb. Kelebihan kernel modular ini adalah lebih mudah diinstall/uninstall tetapi kelemahannya adalah kurang stabil.
Lalu apa keuntungan melakukan kompilasi kernel? Berikut alasannya:
  1. Kernel monolitik akan dimuat saat booting, artinya semakin banyak kernel monolitik yang dimuat, maka memori yang digunakan pun semakin besar, padahal belum tentu semua kernel monolitik tersebut kita perlukan. Ada beberapa yang cuma perlu dijadikan kernel modular saja. Dengan merampingkan ukuran kernel, maka kecepatan booting dapat ditingkatkan dan memperkecil pemakaian memori.
  2. Dengan kompilasi kernel, Kita dapat menyeting sistem PC kita agar bekerja lebih maksimal lagi. Karena umumnya kernel yang disertakan bekerja untuk PC secara umum, artinya tidak seluruh kemampuan PC kita dikeluarkan karena kernel diset untuk bekerja secara umum. Contohnya adalah CPU, setting standar kernel adalah menggunakan CPU Pentium I, padahal kita menggunakan CPU Dual Core. Nah, dengan kompilasi kernel ini Kita bisa mengoptimalkan kerja dari kernel ini agar optimal di CPU Dual Core.
  3. Kita dapat memasukkan feature lainnya yang tidak ada di kernel standar.
  4. Upgrade kernel. Kernel baru umumnya menawarkan kemampuan untuk mendukung lebih banyak hardware, memperbaiki bug yang ada di kernel sebelumnya, lebih stabil dibanding versi sebelumnya, memiliki dukungan manajemen proses yang lebih baik, yang berjalan lebih cepat dari versi sebelumnya.
Langkah-langkah yang perlu disiapkan sebelum melakukan kompilasi kernel adalah:
  1. Menyiapkan source code kernel. Kernel sendiri bisa didownload di www.kernel.org atau mirror lainnya
  2. GNU C Compiler (GCC) untuk mengcompile kernel
  3. Program Make untuk membantu kompilasi program.
Asumsi di post ini adalah menggunakan kernel 2.6.21.5.


Berikut langkah-langkah kompilasi kernel:
  1. Ektrak file kernel yang biasanya terkompresi dalam format .tar.bz2 dengan perintah
    Quote:
    $ tar xjvf linux-2.6.21.5.tar.bz2
  2. Pindah ke direktori hasil ekstrak file kernel tadi
  3. Bila Anda merasa perlu untuk membersihkan source kernel dari sisa kompilasi sebelumnya, lakukan dengan perintah
    Quote:
    $ make clean
  4. Untuk memulai memilih kernel mana yang akan di-compile, ketik
    Quote:
    $ make menuconfig
    Pilihlah kernel yang akan dijadikan kernel monolitik (ditandai dengan
  5. ) atau kernel modular (ditandai dengan [M]), atau malah akan dihapus (ditandai dengan []). Untuk memilih tekan spasi, untuk kembali ke menu sebelumnya tekan ESC, untuk masuk ke sub menu tekan ENTER. Harap pilih tipe kernel (monolitik atau modular) dengan cermat, agar sistem Anda menjadi lebih optimal dan tidak sebaliknya. Setelah selesai memilih, maka keluarlah dari menu config tersebut (dengan memilih exit).
  6. Kompile kernel dengan perintah
    Untuk kernel 2.4.x lakukan dengan perintah:
    Quote:
    $ make
    $ make bzImage
    $ make vmlinuz
    $ make modules
    $ make modules_install
    Perintah make bzImage untuk membuat image kernel utama saat booting
    Perintah make vmlinux untuk image kernel versi tidak terkompresi
    Perintah make modules untuk meng-kompile kernel modular.
    Perintah make modules_install akan membuat direktori sesuai versi kernel di bawah direktori /lib/modules

    Untuk kernel 2.6.x lakukan dengan perintah:
    Quote:
    # make all && make modules_install && make install
    Tunggu proses kompilasi sampai selesai, karena proses dapat berlansung lama tergantung dari spesifikasi komputer.

Bagi yang menggunakan kernel 2.6.x, langkah di bawah ini bisa dilewatkan.
  1. Selanjutnya, adalah mengkonfigurasi bootloader Anda. Ada baiknya Anda meng-copy beberapa file ini ke /boot. Beberapa file tersebut adalah bzImage (ada di direktori arch/i386/boot), vmlinuz (ada di direktori utama), .config dan system.map (untuk debugging). Copy semua file tersebut ke direktori baru di /boot, misalnya /boot/kernelbaru.
  2. Login sebagai root, dan edit file grub.conf (bila menggunakan grub sebagai boot loader). Tambahkan entri sebagai berikut (jangan hapus file dan entry kernel yang lama, untuk berjaga-jaga bila kernel baru tidak bisa berjalan):
    Quote:
    title New Kernel (2.6.21.5)
    root(hd1,0)
    kernel /boot/kernelbaru/bzImage ro root=/dev/hda1
    initrd /boot/kernelbaru/initrd-2.6.21.5.img
    Bila file initrd ini tidak ada, file ini dapat dibuat dengan perintah
    Quote:
    # mkinitrd /boot/kernelbaru/initrd-2.6.21.5.img 2.6.21.5
  3. Bila Anda menggunakan LILO, maka entry yang perlu dimasukkan adalah
    Quote:
    image=/boot/kernelbaru/vmlinuz-2.6.21.5
    label=New Kernel
    root=/dev/hda1
    read-only
    Setelah diedit, jangan lupa ketik perintah berikut
    Quote:
    # lilo
  4. Kompilasi kernel telah selesai, restart komputer Anda dan pilihlah kernel yang baru tersebut.
tambahin ya langkah-langkah compile kernel yang belum dituliskan diatas..

usahakan extract kernel baru di folder /usr/src kemudian unlink linux link ke kernel lama dan ganti dengan link ke folder baru. langkah ini akan mempermudah installasi aplikasi yang memerlukan kernel source dikemudian hari.

make clean hanya dilakukan ketika recompile jadi kalo compile dari awal make clean gak perlu dilakukan.

cara compile yang bro beri cukup oldiest biasa dipake untuk kernel 2.4 kebawah... berhubung kernel linux dari 2.6 keatas udah susah (kalo ngga gak mungkin) dibikin kecil (kurang dari 1.44Mb) jadi beberapa command bisa dilewat lagian sekarang compile kernel gak sebanyak itu command nya udah disederhanakan.. setelah make menuconfig cukup ketik segini saja

Code:
make && make modules && make modules_install && make install
make & make modules bisa disingkat dengan mengetikan make all

terus mkinitrd lebih baik selalu dilakukan setelah compile kernel jaga-jaga jangan sampe gagal boot dulu baru repot bikin initrd

Sudo (Super User DO)

Sudo (Super User DO)

Sudo digunakan meningkatkan level user tertentu untuk menggunakan perintah tertentu. Singkatnya dengan Sudo, user dapat juga bertindak sebagai root tanpa memerlukan password root (tetapi dengan password user tersebut).
  1. Insatalasi Sudo
    Umumnya sudo sudah termasuk di distro Linux (terutama basis debian), tetapi bila ternyata sudo tidak ada atau ingin diupgrade, Anda dapat men-download software sudo tersebut di www.courtesan.com/sudo. Versi terbaru saat ini (sampai dengan post ini) adalah 1.6.9p3.

    Setelah didownload, lakukan langkah-langkah berikut untuk menginstalnya:
    • $ tar xvzf sudo-1.6.9p3.tar.gz
    • $ cd sudo-1.6.9p3
    • $ ./configure --with-all-insults --enable-log-host
    • $ make
    • # make install

  2. Konfigurasi
    Konfigurasi untuk sudo berada dalam file /etc/sudoers. Untuk mengedit file konfigurasi ini tidak dapat dilakukan dengan editor lain, semacam vi, joe, dsb. Pengeditan file konfigurasi ini dilakukan dengan perintah visudo.

    File konfigurasi ini terbagi menjadi 2 bagian, yaitu bagian alias dan bagian privilege.

    Bagian alias, umumnya terbagi menjadi 4 bagian yaitu:
    1. Host_Alias : Digunakan untuk mengisikan daftar nama host, alamat IP, network/netmask, atau netgroup.
    2. Runas_Alias : Digunakan untuk mengisikan daftar user, group, atau netgroup
    3. Cmnd_Alias : Digunakan untuk mengisikan daftar perintah atau direktori secara absolut. Bila yang diberikan adalah perintah, maka argumen dan flag dapat juga disertakan.
    4. User_Alias : Digunakan untuk mengisikan daftar user, group, atau netgroup

    Format untuk bagian privilege adalah sebagai berikut:
    user_alias host_alias=(runas_type, runas_type, ...) cmnd_alias

    NB: runas_type bersifat opsional, artinya boleh diberikan dan boleh juga tidak diberikan

    Berikut adalah contoh sederhana konfigurasi file /etc/sudoers:
    Quote:
    # Host alias
    Host_Alias FILESERVERS = fs1, fs2
    Host_Alias MAILSERVERS = smtp, smtp2

    # User Alias
    User_Alias USERS = joni, joe
    User_Alias ADMINS = Sirius
    Runas_Alias ADMIN = root

    # Command Aliases, untuk command yang akan dijalankan oleh sudo
    Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
    Cmnd_Alias HALT = /sbin/halt, /sbin/shutdown -h *
    Cmnd_Alias REBOOT = /sbin/reboot, /sbin/init 6, /sbin/shutdown -r *

    ## User privilege, untuk menentukan user mana dan command apa yang akan dijalankan

    #artinya root boleh menjalankan semua perintah
    root ALL = (ALL) ALL

    #artinya semua user yang tercantum di user alias USERS boleh mengakses perintah Services dengan status sebagai alias ADMIN (run as)
    USERS ALL = (ADMIN) SERVICES

    # artinya semua user alias ADMINS boleh menjalankan perintah halt dan reboot tanpa memasukan password
    ADMINS ALL = NOPASSWD: HALT, REBOOT

    # semua user alias USERS boleh mengakses semua perintah SERVICES sebagai alias ADMIN di komputer alias MAILSERVERS
    USERS MAILSERVERS = (ADMIN) SERVICES

Dasar Pemrograman Shell

Dasar Pemrograman Shell

Seringkali di dalam memberikan perintah-perintah di Linux, Kita harus mengulang-ulang pengetikan. Pekerjaan yang berulang tersebut sangatlah tidak efisien, akan lebih baik bila kita menyimpan semua perintah tersebut ke dalam file untuk dijalankan. File-file inilah yang disebut dengan file script.

Untuk itulah gunanya file-file script, agar memudahkan pekerjaan Kita. Tidak hanya perintah-perintah yang sering digunakan saja, Kita bahkan dapat menggunakan perintah-perintah dasar pemrograman agar file script tersebut menjadi lebih dinamis.

Dalam pembahasan kali ini, Kita akan mempelajari pemrograman di dalam bash shell.

Tidak seperti Windows, di dalam Linux tidak ada ekstensi khusus untuk suatu nama file yang dapat dijalankan termasuk file script. Suatu file script dapat memiliki ektensi dan dapat juga tidak memiliki ektensi. File dapat dijalankan atau tidak tergantung dari permission file tersebut. Suatu file dapat dijalankan bila memiliki permission x
  1. Menjalankan Script
    Untuk menjalankan Script, perintahnya adalah
    Quote:
    $ sh [/path/]NamaScript
    sh dapat diganti dengan bash atau csh, sesuai dengan shell yang akan digunakan.

    Bila file script tersebut mempunyai atribut executable, maka untuk menjalankan script tersebut dapat dilakukan dengan perintah
    Quote:
    $ [/path/]NamaScript
  2. Membuat Script

    Baris pertama setiap script sebaiknya memiliki pernyataan sebagai berikut
    Quote:
    #!/bin/bash
    Isi baris tersebut menunjukkan bahwa script yang dibuat seharusnya dijalankan pada lingkungan shell bash

    Berikut adalah contoh script untuk menampilkan pesan:
    Quote:
    $ vi HelloWorld.sh

    #!/bin/bash
    echo "Hello World"
  3. Menggunakan Variabel
    1. Pemberian Nama Variabel
      Di dalam dunia pemrograman, variabel merupakan komponen penting yang digunakan sebagai tempat penyimpanan data yang akan diproses. Pemberian Nama Variabel tidak diperbolehkan menggunakan tanda baca ataupun spasi.

      Contoh yang benar
      Quote:
      NamaBahasa
      Nama_Lengkap
      NILAI
      Contoh yang salah
      Quote:
      Nama Bahasa
      Nama/Lengkap
    2. Operasi Assignment
      Untuk memberi nilai (mengisi data) ke dalam variabel, Kita bisa menggunakan tanda = (sama dengan). Contoh:
      Quote:
      NamaBahasa="Pascal"
      Nama_Lengkap="Turbo Pascal"
      Saat memberikan perintah assignment, tidak boleh ada spasi antara nama variabel dengan tanda sama dengan. Pemberian spasi akan menyebabkan variabel tersebut dianggap sebagai sebuah perintah.

      Jika data yang dimasukkan bukan berupa angka (data untuk kalkulasi matematis), maka data tersebut harus diapit dalam tanda kutip ganda (") atau dengan tanda petik tunggal (').

      Jika Kita ingin memasukan perintah-perintah Linux ke dalam variabel ini agar dapat dieksekusi, maka perintah tersebut harus diapit dengan tanda backquote (`).

      Contoh
      Quote:
      NamaBahasa="Pascal"
      Versi=7
      AdaDiManaSekarang=`pwd`
      Dalam kasus tertentu, assignment seperti contoh di atas tidak dapat digunakan, misalnya karena penggunaan karakter seperti wildcard seperti "*", sehingga tidak memungkinkan kita melakukan operasi aritmatika.

    3. Operasi Assignment dengan perintah Let
      Untuk itu, Kita bisa menggunakan perintah let sebagai pernyataan perintah untuk melakukan assignment. Contoh:
      Quote:
      let NamaBahasa="Pascal"
      let x=100
      let x=100+20
    4. Variabel Read Only
      Kadangkala Kita ingin agar variabel tersebut tidak boleh berubah isinya (constanta), maka variabel tersebut harus diberikan perintah readonly. Contoh penggunaannya
      Quote:
      NamaBahasa="Pascal"
      readonly NamaBahasa
      Jika Kita mengubah suatu variabel read only, maka akan terjadi kesalahan karena variabel tersebut tidak dapat diubah.

    5. Menampilkan Variabel
      Untuk menampilkan variabel, Kita dapat menggunakan perintah echo. Nama Variabelnya sendiri harus didahului dengan tanda $. Perintahnya
      Quote:
      echo $NamaVariabel
      . Contoh penggunaannya:
      Quote:
      NamaBahasa="Pascal"
      AdaDiManaSekarang=`pwd`

      echo "Nama Bahasa Pemrograman yang digunakan "$NamaBahasa
      echo "Lokasi direktori saat ini berada di "$AdaDiManaSekarang
      Di atas telah disebutkan untuk data variabel dapat menggunakan tanda petik ganda (") dan tanda petik tunggal ('). Sebenarnya penggunaan tanda petik ini pada dasarnya adalah sama. Penggunaannya baru berbeda bila ada nama variabel di dalamnya. Contoh perbedaannya:
      Quote:
      NamaBahasa="Pascal"
      echo "Isi Variabel NamaBahasa $NamaBahasa"
      echo 'Isi variabel NamaBahasa $NamaBahasa'

      maka hasilnya adalah
      Isi Variabel NamaBahasa Pascal
      Isi Variabel NamaBahasa $NamaBahasa
      Terlihat bahwa isi variabel akan ditampilkan pada saat diapit dengan tanda petik ganda. Agar isi variabel tidak digunakan (sama dengan menggunakan tanda petik tunggal), maka kita harus menggunakan tanda "\". Contoh penggunaannya:
      Quote:
      NamaBahasa="Pascal"
      echo "Isi Variabel NamaBahasa \$NamaBahasa"
  4. Menerima data dari standar input
    Untuk membuat script Kita menjadi interaktif, maka script tersebut haruslah dapat menerima input dari standar input (misalnya: keyboard). Untuk menerima input, gunakan perintah read, contoh penggunaanya:
    Quote:
    echo "Masukan Nama Bahasa Pemrograman Favorit"
    read NamaBahasa
    echo "Ternyata bahasa pemrograman favorit Anda adalah "$NamaBahasa
  5. Perintah expr
    Perintah expr merupakan perintah yang digunakan untuk melakukan suatu evaluasi suatu ekspresi. Contoh penggunaannya:
    Quote:
    echo "Test "
    expr "Test "
    echo 10 + 1
    expr 10 + 1
    expr 10+1

    maka hasilnya adalah
    Test
    Test
    10 + 1
    11
    10+1
    Jadi dengan menggunakan perintah expr, bila operasi aritmetika memiliki spasi maka yang ditampilkan adalah hasilnya. Tetapi bila tidak memiliki spasi maka akan ditampilkan sebagai string.

    Hasil dari perintah expr tidak disimpan ke dalam variabel, tetapi langsung ditampilkan ke dalam standar output.

    Sedangkan hasil dari perintah let disimpan dalam variabel, tetapi tidak ditampilkan ke dalam standar output.

    Jika hasil dari perintah expr ingin disimpan ke dalam variabel, maka Kita harus menggunakan operator brave yang diikuti dengan perintah expr atau echo untuk menampilkan isi variabel tersebut.

    Contoh:
    Quote:
    y=`expr 10 + 1`
    echo $y
    expr $y

    maka hasilnya adalah
    11
    11

Pembahasan pemrograman telah dibuatkan dalam thread tersendiri atas permintaan bro D2000, pembahasan tingkat dasar ini juga ada di thread tersebut. Thread tentang pemrograman tersebut berjudul Belajar Linux: Pemrograman di Linux .

Penjadwalan dengan at

Penjadwalan dengan at


Crontab digunakan untuk menjadwalkan proses yang berulang-ulang. Bagaimana bila penjadwalan tersebut hanya dilakukan 1 kali saja? Untuk kasus tersebut Kita bisa menggunakan at. Perintah at digunakan menjadwalkan proses suatu perintah untuk dijalankan pada waktu yang telah Kita definisikan. Memang sebenarnya Kita bisa saja menggunakan crontab, tetapi perintah yang telah dilaksanakan tidak otomatis dihapus, dan penggunaan dengan crontab akan menjadi kurang tepat.


Format perintah at adalah:
Quote:
at [option] waktu -f program


Keterangan
option yang dapat diberikan adalah -l, yang berguna untuk menampilkan daftar perintah yang berada di dalam antrian
waktu dinyatakan dalam format HH:MM
-f adalah opsi yang menandakan bahwa parameter berikutnya adalah file program
program adalah nama program yang akan dikerjakan pada waku yang telah ditentukan.

Contoh penggunaan at
  • Menjalankan script untuk backup pada jam 20:00
    Quote:
    $ at 20:00 -f ./backup.sh
    warning: commands will executed using /bin/sh

    Perintah tersebut menghasilkan peringatan yang dapat Kita abaikan. Peringatan tersebut muncul karena sistem tidak mengetahui shell yang digunakan. Karena itu sistem akan menggunakan shell bash (/bin/sh).


  • Untuk melihat daftar antrian yang ada
    Quote:
    $ at -l
    20 2007-07-10 20:00 a guest

    Angka 20 itu berarti nomor job yang diberikan oleh sistem.


Agar perintah at dikerjakan, maka daemon atd harus aktif, tanpa itu perintah at tidak dapat dijalankan. Untuk memeriksa daemon tersebut telah aktif atau tidak, gunakan perintah
Quote:
service atd status

Perintah yang sudah diberikan masih dapat diatur ulang atau bahkan dibatalkan. Berikut adalah perintah-perintahnya:
  1. atq: at queue merupakan perintah untuk melihat ke dalam daftar antrian yang telah dijadwalkan. Hasil dari perintah atq ini sama dengan perintah at -l
  2. atrm: at remove, adalah perintah untuk membatalkan suatu antrian yang telah terjadwal berdasarkan nomor job yang Kita berikan. Perintahnya:
    Quote:
    $ atrm nomorjob
    Untuk melihat apakah, nomor job yang telah Kita batalkan itu telah dihapus atau tidak, maka setelah memberikan perintah atrm, berikan perintah atq untuk memastikan nomor job yang telah Kita hapus tidak muncul lagi.
  3. atrun: at run, adalah perintah untuk langsung mengeksekusi suatu proses yang berada di antrian. Perintahnya:
    Quote:
    $ atrun nomorjob

Penjadwalan dengan Cron

Penjadwalan dengan Cron

Kadangkala Kita dihadapkan terhadap suatu rutinitas, misalnya seperti backup data, dsb. Karena rutinitas tersebut dilakukan secara manual, tentunya Kita bisa menjadi jenuh. Tetapi bagaimana bila tugas-tugas tersebut Kita limpahkan saja ke komputer dengan menggunakan penjadwalan? Tentunya akan menjadi menyenangkan karena pekerjaan yang bersifat rutinitas tersebut menjadi terotomatisasi tanpa penekanan tombol keyboard.

Di Linux, penjadwalan tersebut dapat dilakukan dengan Cron, yang merupakan program standar di Linux.

File konfigurasi cron ini berada di /etc/crontab. Tetapi jangan mengedit file ini, karena untuk menambahkan atau mengedit jadwal, Kita harus menggunakan perintah
Quote:
$ crontab -e
Perintah lengkap dari cron ini adalah sebagai berikut:
Quote:
crontab [-u NamaUser] file
atau
crontab [-u NamaUser] [-e|-l|-r]

Keterangan
-e: edit jadwal user
-l: melihat jadwal user
-r: menghapus jadwal user
-i: Memastikan sebelum menghapus jadwal user
Format dalam file crontab adalah seperti ini:
Quote:
menit jam tanggal bulan hari perintah

Keterangan
menit: 0-59
jam: 0-23
tanggal: 1-31
bulan: 1-12
hari: 1-7, dimana 1=Senin
Perhatikan contoh berikut
  • Untuk mengatur jadwal untuk menampilkan pesan setiap 5 menit sekali ke semua terminal (tty).
    Quote:
    */5 * * * * echo "waktu kerja" | wall

    Keterangan:
    * : perulangan / kapan pun
    */n : perulang setiap n waktu (tergantung dimana berada, apakah di menit, jam atau yang lainnya).
    wall : perintah untuk menampilkan pesannya ke semua terminal/tty.
  • Untuk menampilkan pesan setiap jam 12:00 ke semua terminal/tty
    Quote:
    00 12 * * * echo "waktu makan" | wall
  • Menghapus file-file di /tmp setiap tanggal 1 jam 04:00
    Quote:
    00 04 1 * * rm -rf /tmp/*
  • Mengupdate file router.cfg setiap 1 jam
    Quote:
    * */1 * * * /usr/local/src/mrtg-2/bin/mrtg /var/www/mrtg/conf/router.cfg

Kita juga dapat membuat file yang berisi entri dari crontab. Contoh:
Quote:
$ vi customcron
00 15 * * * echo "testing"

Untuk menginstallnya, ketik perintah berikut
$ crontab customcron
Untuk melihat penjadwalan apa saja yang sudah Kita buat, perintahnya:
Quote:
$ crontab -l
Untuk melihat penjadwalan user tertentu, perintahnya:
Quote:
# crontab -u NamaUser -l
Untuk menghapus seluruh jadwal, perintahnya:
Quote:
$ crontab -r
Untuk menghapus seluruh jadwal user tertentu, perintahnya:
Quote:
# crontab -u NamaUser -r

User & Group

User & Group

Melanjutkan pembahasa tentang Membuat User dan Group, kali ini Kita akan melihat lebih jauh mengenai user dan group tersebut.

Jika di dalam pembahasan sebelumnya, Kita tidak bisa menentukan group default dari masing-masing user, maka di sini Kita akan mempelajari hal tersebut.
  • Untuk membuat user dengan group defaultnya Kita dapat membuat dengan syntax seperti ini:
    Quote:
    # useradd -g NamaGroup NamaUser
  • Defaultnya, setiap user yang dibuat akan mempunyai home folder di /home/NamaUser. Kita juga dapat agar user tersebut mempunyai home folder di tempat lain. Contoh, untuk membuat home folder user A berada di /home/marketing/A, maka perintah yang diberikan adalah:
    Quote:
    # useradd -d /home/marketing/A NamaUserA
  • Sekarang, Kita akan membuat user, tetapi user tersebut tidak bisa melakukan login. Perintahnya adalah:
    Quote:
    # useradd -s /bin/false NamaUser
  • Jika Kita sudah terlanjur membuat user tanpa group default yang Kita kehendaki, maka Kita dapat menggunakan perintah chmod. Perintahnya adalah
    Quote:
    # usermod -g NamaGroupDefault NamaUser
    Awas ya, jangan sampai tertukar dengan parameter -G (G besar). Karena dengan parameter -G artinya adalah secondary group.

Daemon (Services, XInetd)

Daemon (Services, XInetd)

Daemon di Linux adalah sama seperti services di Windows. Daemon di Linux dibagi menjadi 2, yaitu stand alone (contoh: sshd, cups, httpd, dsb) dan Xinetd (contoh: telnet, rsync, wwftpd, dsb).

Xinetd sudah mulai ditinggalkan karena dapat menimbulkan lubang keamanan. Kenapa begitu? Karena bila xinetd sudah ditembus, maka semua daemon yang menggunakan xinetd otomatis akan tertembus juga.

File konfigurasi daemon itu berada di /etc/services. Option yang sering digunakan adalah start|stop|restart|status

Jadi bila Kita akan menjalankan suatu daemon (misalnya sshd), perintahnya dapat ditulis sebagai berikut: service sshd start. Ada cara lain yaitu dengan mengaksesnya langsung, jadi perintah tersebut sama dengan perintah ini /etc/init.d/sshd start. Karena semua script untuk daemon tersebut memang berada di /etc/init.d. Dan perintah service sebenarnya merupakan script yang akan menjalankan daemon script di /etc/init.d/sshd tersebut.

Kita dapat mengatur, agar suatu daemon dapat berjalan otomatis atau tidak. Kita juga dapat mengatur agar suatu daemon hanya berjalan di runlevel tertentu saja. Berikut beberapa perintahnya:
  • Melihat daemon yang sedang aktif
    Quote:
    # chkconfig --list
  • Melihat daemon tertentu
    Quote:
    # chkconfig --list sshd
  • Mematikan daemon sshd pada run level 2
    Quote:
    # chkconfig --level 2 sshd off
  • Mematikan daemon di seluruh level
    Quote:
    # chkconfig sshd off
  • Menjalankan daemon secara default (run level 2,3,4 dan 5)
    Quote:
    # chkconfig sshd on

GRUB Boot Loader

GRUB Boot Loader

Jika pembahasan sebelumnya mengenai LILO, maka kali ini Kita akan membahas mengenai GRUB.

Seperti halnya LILO, GRUB Boot Loader pun perlu diberi password agar tidak sembarang user dapat mengotak-atik sistem. Password Boot Loader berguna untuk:
  1. Mencegah akses ke single user mode
  2. Mencegah akses ke GRUB Console
  3. Mencegah akses ke OS yang tidak aman, contoh dalam dual boot, penyerang dapat memilih OS yang tidak memperhatikan permission dan akses kontrol (misalnya DOS, XP, dsb).

Berikut caranya untuk memberikan password di GRUB Boot Loader:
  1. Buat password dulu password yang di-encrypt.
    Quote:
    # grub-md5-crypt

    Password:
    Retype password:
    $1$NKeR71$Sgv7tyQ6LG3dhpfihIJyL0
  2. Setelah mengetik password Anda, maka Anda telah mempunyai password yang telah di encrypt (password hash). Buka file /etc/grub.conf Anda, dan tambahkan baris berikut:
    Quote:
    password --md5

    contohnya dengan password yang Kita ketik tadi akan menjadi seperti ini:
    password --md5 $1$NKeR71$Sgv7tyQ6LG3dhpfihIJyL0
  3. System di atas sebenarnya sudah aman, tetapi tidak untuk yang menggunakan dual boot dengan OS yang tidak aman. Untuk itu, tambahkan lock di bawah title OS tersebut.
    Quote:
    title Windows XP
    lock
  4. Jika Anda ingin mempunya password yang berbeda untuk menjalankan OS yang tidak aman tersebut, Anda dapat menambahkan baris berikut:
    Quote:
    title Windows 2000
    lock
    password --md5

Simpan file tersebut dan keluar dari editor. Sekarang Anda dapat mencoba konfigurasi yang baru tersebut.

LILO Boot Loader

LILO Boot Loader

Boot loader di Linux ada 2 yang populer, yaitu LILO dan GRUB, pada pembahasan kali ini akan difokuskan pada pembahasan LILO.

LILO merupakan program untuk memanggil boot loader yang berfungsi sebagai boot manager. Dengan menggunakan LILO, Kita dapat memilih sampai 16 image kernel.

LILO terdiri dari beberapa program dan file, yaitu:
  1. Map Installer, merupakan program yang berjalan pada Linux dan memberitahukan letak file dan informasi tentang data yang diperlukan saat pertama kali booting. Biasanya, file ini terletak di /sbin/lilo.
  2. File Pendukung, berisi data yang diperlukan oleh LILO saat melakukan booting, contohnya boot loader. File ini biasanya terletak di /boot. File yang paling penting adalah file map (/boot/map) dan file konfigurasi (/boot/lilo.conf).
  3. Boot Loader, bagian dari LILO yang dimuat oleh BIOS, kernel atau boot sector dari sistem operasi lain.
Untuk mengganti konfigurasi dari LILO, Kita dapat mengedit langsung file konfigurasinya, yaitu dengan perintah
Quote:
vi /boot/lilo.conf
Setelah file konfigurasi diedit, Kita harus menjalankan menginstall LILO yang baru tersebut dengan perintah
Quote:
# lilo
Seperti telah dijelaskan di postingan sebelumnya, bahwa bila Kita melupakan password root, atau ingin membetulkan sistem linux, Kita dapat masuk dalam run level 1. Saat LILO boot loader muncul, kita dapat menekan ESC dan mengetik Linux 1. Selanjutnya Kita sudah berada di run level 1.

Cara di atas sebenarnya kurang aman, karena siapa saja dapat masuk dan mengganti-ganti sistem Kita, karena tidak ditanyakan password root. Untuk itu, Kita dapat menambahkan password agar saat user ingin memasuki run level 1, user tersebut dimintakan password.

Caranya:
  1. Buka file konfigurasi (/etc/lilo.conf)
  2. Filenya akan terbagi menjadi 2 bagian, yaitu bagian global dan image.
  3. Tambahkan di baris paling atas dengan baris berikut:
    Quote:
    password=rahasia
    restricted
  4. Simpan filenya, jalankan
    Quote:
    # lilo

Sekarang, setiap kali Kita ingin masuk ke single mode (Linux 1) atau pun mengganti option saat booting, Kita akan dimintakan password.

Tetapi karena file /etc/lilo.conf itu dapat dibaca oleh semua orang, Kita harus mengamankan file tersebut. Caranya:
Quote:
# chmod 600 /etc/lilo.conf
Sekarang /etc/lilo.conf Anda sudah aman, karena hanya dapat dibaca oleh root. hati-hati, bila Anda melupakan password LILO ini dan Linux Anda tidak dapat mem-boot (karena sistem rusak), Anda harus menginstall ulang LILO via LiveCD atau boot via Disket.

Init dan Run Level

Init dan Run Level

Init merupakan inti semua proses yang akan dan sedang berlangsung. Init dapat dikonfigurasi melalu file yang terletak di /etc/inittab.

Run Level merupakan konfigurasi perangkat lunak dari sistem yang hanya akan membolehkan group proses tetap ada. Setiap proses akan melakukan penggandaan oleh init untuk setiap runlevel yang telah didefinisikan pada /etc/inittab.

Run Level terbagi menjadi 7 bagian, yaitu:
0 = Halt, yaitu mematikan sistem komputer
1 = Single User Mode, dalam modus ini kita bekerja sebagai root, biasanya digunakan untuk menangani masalah di Linux bila terjadi gagal boot. Single User Mode ini juga bisa dengan parameter S atau s.
2 = Multiuser tanpa networking
3 = Multiuser dengan networking
4 = Tidak digunakan
5 = Multiuser dengan Networking tetapi bekerja dalam modus GUI/X11.
6 = Reboot, merestart ulang komputer.

Semua run level tersebut bekerja dalam CLI, kecuali 0, 5 dan 6. 0 dan 6 berguna untuk mematikan atau merestart komputer dan bisa digunakan dari CLI maupun GUI. Run level 5 berguna untuk masuk ke GUI. Defaultnya adalah 5.

Contoh:
  • Kita ingin masuk ke mode Multiuser tanpa networking, ketikan di CLI
    Quote:
    # init 2
  • Kita ingin masuk ke mode Multiuser dengan networking, ketikan di CLI
    Quote:
    # init 3
  • Kita ingin merestart komputer, ketikan di CLI
    Quote:
    # init 6
  • Kita ingin mematikan komputer, ketikan di CLI
    Quote:
    # init 0
Seperti pernah disinggung di atas, file inittab dapat dikonfigurasi, dan run level default dikonfigurasi di file inittab ini. Jadi, bila ternyata linux Anda gagal booting (atau malah restart terus) dengan pesan runlevel, Anda harus memeriksa file ini dalam run level 1.

Berikut isi file dari /etc/inittab tersebut yang telah saya tambahkan komentar untuk dimengerti:
Quote:
#
#inittab This file describes how the INIT process should set up
# the system in a certain run-level.
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#


#Konfigurasi ini untuk menyatakan saat booting Linux
#akan masuk ke mode apa. Karena di
#situ dituliskan
3, artinya Linux akan masuk ke multi
#user mode dengan networking dalam modus CLI.
#Jadi Anda jangan bingung bila tidak masuk ke GUI,
#salah satu penyebabnya adalah ini.
id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
#Perintah berikut akan menentukan file rc (seperti
#autoexec.bat) mana yang akan dieksekusi,
#semuanya tergantung dari runlevel yang dijalankan.
#Bila dijalankan dalam runlevel 5, maka
#yang dieksekusi adalah
l5:5:wait:/etc/rc.d/rc 5

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel.
ud:: once:/sbin/update
#Perintah ini berguna untuk membuat tombol Ctl+Alt+Del
#sebagai perintah reboot. Anda dapat menonaktifkannya
#dengan meng-comment perintahnya.

# Trap CTRL-ALT-DELETE
# ca::ctrlaltdel:/sbin/reboot -t3 -r now
#When our UPS tells us power has failed,
#assume we have a few minutes of power left.
#Schedule a shutdown for 2 minutes from now.
#This does, of course, assume you have powerd installed
#and your UPS connected and working correctly.

pf:: powerfail:/sbin/shutdown -f -h +2 “Power Failure; System Shutting Down”
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c “Power Restored; Shutdown Cancelled”
#Defaultnya, kita mempunyai 6 console (tty1-tty6) yang bisa
#diakses dengan Ctrl+Alt+Fn. Kita dapat mengaturnya akan
#tidak sampai 6 console, misalnya kita hanya ingin
#mempunyai 3 console saja. Untuk itu, Anda dapat
#memberikan tanda komentar (#) pada baris yang diinginkan.
#Bila kita hanya ingin tty 3 diakses oleh runlevel 2 dan 5 saja,
#maka Anda dapat memberikan perintah berikut:
#3:25:respawn:/sbin/mingetty tty3
#Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
Misalkan ada teman Kita yang jail dan mengganti setting file /etc/inittab ini agar Linux hanya menjalankan modus runlevel 9 (padahal tidak ada runlevel 9), maka hasilnya adalah Linux Anda tidak bisa dijalankan sama sekali. Bahkan tidak bisa masuk ke console sekalipun (Error runlevel ini bisa dilihat dari tampilan verbose saat booting. Bila tidak tampil dalam verbose, tekan ESC saja saat splash screen booting muncul). Lalu bagaimana pemecahannya? Berikut caranya:
Quote:
  1. Saat menu booting (LILO atau GRUB), tekan ESC bila di LILO atau e bila di GRUB.
  2. Akan muncul parameter booting yang dapat kita ketikkan. Ketikkan linux 1
  3. Kita akan masuk sebagai root dalam single user mode.
  4. Setelah itu, ketik vi /etc/inittab dan betulkan file inittab-nya
  5. Setelah dibetulkan, simpan filenya dan restart komputer (ketikan init 6 karena kita sudah belajar init dan run level, dan perintah reboot ini sebenarnya juga mengakses init 6 ini).
Perubahan inittab ini juga dapat dibaca ulang dengan perintah:
Quote:
# /sbin/init q

Membuat Partisi

Membuat Partisi

Agar bisa diisi dengan sistem operasi maupun dengan data-data lainnya, maka suatu harddisk haruslah dibuatkan partisinya terlebih dahulu. Bagi yang terbiasa menggunakan MS-DOS dan MS-Windows, partisi ini ditandai dengan huruf drive, seperti drive C, drive D, dsb.

Anda dapat membaca thread ini untuk mengetahui dasar-dasar peng-kode-an HDD dan partisi di Linux.

Di Linux, nama partisi melekat pada path direktori, karena itu Kita bebas menamai direktori kita. Artinya, bisa saja kita membuatkan partisi terpisah pada folder-folder system Linux. Contoh, Kita dapat membuat partisi terpisah untuk /home, /temp, /etc, dsb. Salah satu manfaat membuat partisi adalah, Kita dapat menginstall beberapa sistem operasi. Keuntungan lainnya, file-file dokumen Kita dapat disimpan dalam partisi terpisah, jadi ketika sistem operasi bermasalah dan perlu diinstall ulang, maka dokumen kita tetap aman.

Partisi dibagi menjadi 3 jenis, yaitu Primary, Extended dan Logical Partition. Dalam 1 harddisk hanya dapat menampung 4 partisi primary. Jika ingin lebih dari 4 partisi, maka kita perlu menggunakan extended partisi. Dimana dari extended partisi ini Kita bisa memuat logical partisi dengan jumlah yang lebih banyak. Jadi sebenarnya extended ini merupakan wadah dari partisi logical.

Untuk melakukan partisi di Linux, perintahnya sama dengan pembuatan partisi di MS-DOS, yaitu menggunakan fdisk.
  • Melihat partisi apa saja yang telah ada, gunakan perintah:
    Quote:
    # fdisk -l

    Disk /dev/hda: 40.0 GB, 40020664320 bytes
    255 heads, 63 sectors/track, 4865 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot Start End Blocks Id System
    /dev/hda1 * 1 1275 10241406 83 Linux
    /dev/hda2 1276 1402 1020127+ 82 Linux swap / Solaris
    /dev/hda3 1403 2677 10241437+ 83 Linux
    /dev/hda4 2678 4865 17575110 5 Extended
    /dev/hda5 2678 3569 7164958+ 83 Linux
  • Memulai Fdisk, dapat dilakukan dengan perintah fdisk hdd. Contoh:
    Quote:
    # fdisk /dev/hda

    The number of cylinders for this disk is set to 4865.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
    (e.g., DOS FDISK, OS/2 FDISK)
    Command (m for help):
    Beberapa perintah yang sering digunakan adalah
    Quote:
    p = Melihat daftar partisi print the partition table
    l = Melihat daftar tipe-tipe partisi yang didukung oleh Linux
    n = Membuat partisi baru
    d = Menghapus partisi
    q = Keluar tanpa menyimpan (membatalkan)
    w = Menuliskan partisi yang baru dan keluar (menyimpan).
  • Berikut langkah-langkah membuat partisi baru
    Quote:
    Command (m for help): n
    Command action
    l logical (5 or over)
    p primary partition (1-4)
    l
    First cylinder (3570-4865, default 3570):
    Using default value 3570
    Last cylinder or +size or +sizeM or +sizeK (3570-4865, default 4865): +500M
  • Mengganti tipe partisi
    Quote:
    Command (m for help): t
    Partition number (1-6): 6
    Hex code (type L to list codes): isi dengan tipe partisi yang diinginkan, tekan l untuk melihat daftarnya
  • Menyimpan partisi yang telah dibuat:
    Quote:
    Command (m for help): w
  • Partisi telah dibuat, tetapi masih belum dapat digunakan karena belum diformat. Untuk itu, restart komputer Anda agar dapat mengenali partisi yang baru. Kemudian ketik perintah ini
    Quote:
    • Untuk format dengan tipe ext3 (tergantung saat membuat partisi tadi)
      # mkfs.ext3 /dev/hda6
    • Untuk format dengan tipe FAT32
      #mkdosfs /dev/hda6
Demikianlah pembuata partisi baru. HATI-HATI dengan pembuatan partisi ini, karena dapat menyebabkan data Anda hilang bila salah mempartisi.

Ingat, partisi yang baru ini tidak di mount secara otomatis oleh Linux, karena itu Anda harus memountingnya dengan fstab agar dapat dimount secara otomatis.

Mounting Otomatis dengan FSTAB

Mounting Otomatis dengan FSTAB


Cara mounting di atas, dan mounting yang saya berikan di thread sebelumnya bersifat sementara, artinya ketika komputer di restart, maka kita harus melakukan mounting ulang. Sebenarnya mounting ini dapat dibuat permanen. Caranya, simpan di file /etc/fstab.


Jika dilihat, file FSTAB ini terbagi menjadi 6 kolom. Berikut contoh dari fstab:
Quote:
# cat /etc/fstab
/dev/hda1 / ext3 defaults 1 1
/dev/hda2 swap swap defaults 0 0
Keterangan 6 kolom tersebut adalah:
  1. Kolom device, yaitu kolom yang berisi storage device atau folder sharing.
  2. Kolom mount point, yaitu dimana device tersebut akan di mounting.
  3. Kolom file tipe, yaitu tipe file apa yang akan dimounting, misalnya ext3, swap, vfat, ntfs, dsb.
  4. Kolom pilihan, yaitu berisi pilihan apa saja saat akan dilakukan mounting. Misalnya, apakah akan dimounting read-only (ro), read-write (rw), dsb.
  5. Kolom dumping, yaitu berguna untuk menentukan file sistem yang akan di dump oleh perintah dump. Perintah dump ini berguna untuk menentukan apakah akan dibackup atau tidak. Angka yang dapat diisi adalah:
    0 = file system tidak akan di backup (melalui perintah dump).
    1 = file system akan dibackup.
    2 = akan dibackup hari berikutnya.

    NB: Untuk Linux ddengan kernel di atas 2.2, parameter ini tidak digunakan, jadi hanya sebagai kompabilitas saja
  6. Kolom check, kolom ini berguna untuk menentukan apakah file sistem akan di-cek saat sistem reboot. Perintah ini mirip dengan Scandisk di Windows saat komputer tidak dimatikan dengan benar. Angka yang dapat diisi adalah:
    0 = Tidak diperiksa
    1 = Periksa untuk partisi root
    2 = Periksa untuk partisi selain root.

    Pastikan untuk device yang berupa folder sharing, CDROM, dan sebagainya yang bukan merupakan HDD Kita (atau yang dimounting dengan read only) isikan dengan 0. Karena tidak ada gunanya kita memeriksa semua device tersebut.
Sekarang kita akan coba untuk memasukan perintah mounting folder sharing windows dalam postingan sebelumnya ke dalam file fstab ini, tambahkan baris ini ke dalam fstab (dalam 1 baris)
Quote:
//winshare/dokumen /mnt/windows_dokumen cifs defaults,username=NamaUser,password=PasswordUser 0 0
Dengan demikian, setiap kali komputer restart, maka folder sharing windows tersebut akan dimounting secara otomatis. Tetapi ternyata masalah belum selesai sampai di sini. Kenapa? Seperti Anda lihat, bahwa password-nya disimpan dalam file fstab itu sendiri dan ini jelas sekali tidak aman.

Cara yang aman adalah, Anda harus membuat 1 buah file yang berisi username dan password tersebut. Contoh
Quote:
# vi /etc/winpasswd

username = NamaUser
password = PasswordUser
Kemudian, ganti permissionnya agar hanya dapat dibaca oleh root saja.
Quote:
# chmod 600 /etc/winpasswd
Langkah terakhir, ganti baris mounting di file fstab menjadi
Quote:
//winshare/dokumen /mnt/windows_dokumen cifs defaults,credentials=/etc/winpasswd 0 0
Nah, sekarang mounting otomatis Anda telah selesai, dan password juga aman. Untuk melihat hasil dari file fstab ini, Anda bisa melakukan restart.

Tetapi, kalau kita sering melakukan modifikasi terhadap file /etc/fstab, apakah tidak menjadi buang-buang waktu untuk melakukan restart? Sebenarnya ada cara mudah untuk memuat kembali file /etc/fstab tanpa perlu melakukan restart. Gunakan perintah:
Quote:
# mount -a

Akses Folder Sharing Windows

Akses Folder Sharing Windows

Untuk yang ingin mengetahui dasar-dasar mounting, silakan lihat di sini

Linux dapat juga mengakses folder yang disharing di Windows. Syaratnya adalah paket smb-client telah terinstall. Untuk mengaksesnya, Kita akan menggunakan perintah mounting. Ya benar, memang mounting yang sama yang kita gunakan untuk mengakses device storage. Berikut langkah-langkahnya:
  1. Memastikan smb-client telah terinstall. Perintahnya
    Quote:
    # smbclient -L NamaKomputer

    NB: Jika NamaKomputer tidak bisa, gunakan alamat IP komputer tersebut
  2. Jika perintah di atas ternyata meminta Kita memasukan password, artinya Kita harus memasukan user name dalam perintah smbclient tersebut. Maka perintahya menjadi:
    Quote:
    $ smbclient -L NamaKomputer -U NamaUser
    Ketika diminta password, masukkan password yang sesuai dengan NamaUser yang Kita masukkan tadi. Untuk menghindari masalah, jangan menggunakan NamaUser yang mengandung spasi, jika terpaksa menggunakan NamaUser yang mengandung spasi, gunakan tanda “ (petik) untuk nama user.

    Bila muncul tampilan seperti di bawah ini, berarti smbclient telah berjalan:
    Quote:
    Domain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

    Sharename Type Comment
    ------------- ------ -------
    IPC$ IPC Remote-IPC
    dokumen Disk Sharing Dokumen
    ADMIN$ Disk Remoteadmin
    C$ Disk Standard share

    Server Comment
    --------- -------
    WINSERVER

    Workgroup Master
    --------- -------
    WORKGROUP WINMACHINE
  3. Langkah selanjutnya adalah membuat folder untuk mounting-nya. Perintahnya
    Quote:
    # mkdir /mnt/windows_dokumen
  4. Sekarang, barulah kita melakukan mounting.
    Quote:
    # mount -t smbfs //winshare/dokumen /mnt/windows_dokumen

    bila membutuhkan username dan password:
    # mount -t smbfs -o username=NamaUser,password=PasswordUser //winshare/dokumen /mnt/windows_dokumen
  5. Untuk Windows 2003, seringkali gagal melakukan mounting, karena adanya service yang menghalagi tipe file smbfs untuk mengaksesnya. Untuk itu, Anda dapat mengganti tipe file smbfs dengan cifs. Contoh
    Quote:
    # mount -t cifs -o username=NamaUser,password=PasswordUser //winshare/dokumen /mnt/windows_dokumen

Bash Shell

Bash Shell
  1. Pengantar
    Pernahkah Kita memikirkan mengenai proses yang terjadi ketika Kita memberikan perintah kepada Linux?

    Setelah perintah diberikan, ada beberapa proses yang terjadi, tetapi Kita hanya memperhatikan tingkat yang paling atas yaitu shell. Secara sederhana, shell adalah user interface kepada sistem operasi, baik itu DOS, Windows, maupun *NIX.

    Ada beberapa macam shell, yang paling umum adalah Bash, yang dikenal sebagai user interface berbasis karakter. Jenis interface lainnya adalah GUI (Graphical User Interface). Yang Kita akan bahas di sini adalah shell yang berbasis CLI, dan lebih spesifik mengenai Bash Shell.
  2. Berkenalan dengan Shell
    Tugas shell adalah menerjemahkan perintah yang diberikan user menjadi bentuk perintah yang dimengerti oleh sistem operasi. Contoh
    Quote:
    ls > list.txt
    Perintah tersebut berarti menampilkan isi direktori saat ini ke dalam file list.txt. Jadi tampilan tersebut tidak ditampilkan ke layar, tetapi langsung ke file list.txt ini.

    Proses yang dikerjakan oleh shell adalah:
    • Memisahkan baris perintah tersebut menjadi 3 bagian: ls, > dan list.txt
    • Menentukan fungsinya, dimana ls adalah perintah, > dan list.txt adalah instruksi I/O
    • Menset I/O berdasarkan > list.txt dan beberapa instruksi standar dan implisit
    • Mencari perintah ls dan menjalankannya
    Daftar shell yang terpasang berada di file /etc/shells. Pemeriksaan lainnya juga dapat dilakukan dengan perintah berikut (walau tidak semuanya benar)
    Quote:
    $ls /bin | grep sh
    Bila Kita benar-benar ingin memeriksa shell yang ada, Kita bisa mengkombinasikan kedua cara di atas dengan perintah berikut
    Quote:
    $ for f in `grep -v ^# /etc/shells`; do if [ -f $f]; then echo $f; fi; done
    1. Bash (Bourne Again Shell)
      Bourne Again Shell (Bash) dinamakan seperti itu karena shell ini mengacu pada shell yang dibuat oleh Steve Bourne.

      Bash diciptakan untuk digunakan dalam proyek GNU dan juga untuk menjadi shell standar sistem GNU. Bash lahir pada hari Minggu, 10 Januari 1998. Brian Fox yang menulis versi awal bash dan readline dan terus diperbaiki hingga tahun 1993. Chet Ramey bergabung di tahun 1989 dan secara resmi memelihara bash sampai saat ini, dan Ia juga membuat peningkatan-peningkatan lebih lanjut.

      Bash semakin populer karena merupakan shell yang umum dalam setiap OS UNIX. Bash juga menyertakan fitur-fitur terbaik shell C dan Korn, dan beberapa fitur unik lainnya. Bash ini tetap kompatibel dengan shell Bourne.

      Salah satu fitur Bash yang cenderung menarik adalah mode edit. Dengan edit perintah baris, akan menjadi lebih mudah dalam hal menggunakannya kembali, membetulkan kesalahan ataupun memodifikasinya.

      Fitur utama lainnya yang meminjam dari shell C adalah kendali perintah, yang akan memberikan Kita kemampuan untuk memulai, menghentikan dan menunda sejumlah perintah di waktu yang bersamaan.

      Keunggulan lainnya adalah Ia banyak menyertakan pilihan dan variabel baru untuk kustomisasi dan fitur pemrograman yang telah diperbaiki untuk menyertakan definisi fungsi, aritmatika integer, kendali I/O, dsb.
    2. Menggunakan Bash
      Umumnya, bila Kita berkutat di CLI, maka sebenarnya Kita telah menggunakan Bash. Sebenarnya di dalam sistem Kita, terdapat lebih dari 1 shell.

      Untuk mengetahui Kita bekerja di shell yang mana, ketikkan perintah
      Quote:
      echo $SHELL
      Bila kita tidak menggunakan Bash, dan ingin memakainya, ketik perintah bash. Tetapi Kita juga harus memastikan bahwa bash memang ada di sistem Kita. Bila menemukan pesan not found artinya bash belum terinstall di sistem Kita.

      Bila Kita ingin menjadikan bash sebagai shell default, berikan perintah berikut:
      Quote:
      $ chsh
      Lokasi bash bisa diketahui dengan perintah which bash. Selanjutnya bila Anda melakukan login, maka shell default Anda adalah bash.
  3. Bekerja Dengan Shell
    1. Prompt Shell
      Prompt shell merupakan tanda atau tempat yang menandakan bahwa perintah dapat diberikan. Masing-masin shell memiliki prompt yang berbeda. Prompt shell ini juga dapat memberitahukan kepada Kita bahwa saat ini Kita login dengan root atau user biasa.

      Pada shell bash, untuk user biasa ditandakan dengan $ dan untuk root ditandakan dengan #.

      Prompt standar shell, sebenarnya dapat Kita ganti. Jadi, bagi Kita yang sering melihat tampilan prompt standar seperti ini
      Quote:
      [user@pclinux home]
      maka Kita bisa membuatnya menjadi tampil beda.

      Prompt dalam shell bash didefinisikan dengan menggunakan variabel environment PS1. Untuk melihatnya, gunakan perintah
      Quote:
      $ echo $PS1
      PS1 digunakan untuk prompt pertama, artinya bila perintah yang Kita berikan tidak cukup satu baris, harus dilanjutkan pada baris berikutnya, maka definisi prompt pada PS2 (prompt kedua) akan ditampilkan.

      Untuk mengubah prompt, perintahnya adalah
      Quote:
      $ export PS1="Prompt Baru"

      Nilai yang dapat dimasukkan adalah:
      \ = karakter ESC, untuk karakter khusus (misalnya $) dapat dituliskan \$
      \u = menampilkan nama pemakai
      \h = menampilkan nama host
      \w = menampilkan nama direktori kerja saat ini
      Contoh, misalkan Kita ingin mengubah prompt standar menjadi seperti ini
      Quote:
      user di pclinux kerja di home >
      maka perintah yang kita berikan adalah
      Quote:
      $ export PS1="\u di \h ada di \w >"
    2. Varibel Environment
      Variabel environment adalah daftar variabel untuk menyimpan nilai-nilai yang dibutuhkan oleh shell dalam melakukan suatu proses. Contoh variabel yang sering digunakan adalah PATH. Variabel ini berguna untuk mencari lokasi suatu program yang akan dijalankan, bila program tidak ditemukan di direktori saat ini.
      • Untuk menampilkan variabel environment, perintahnya
        Quote:
        $ env
      • Untuk menampilkan isi suatu variabel environment, perintahnya
        Quote:
        $ echo $NamaVariabelEnvironment
      • Untuk mendefinisikan, mengubah isi variabel environment, perintahnya
        Quote:
        $ export NamaVariabelEnvironment=Nilai
      • Untuk menambahkan nilai kepada variabel environment yang sudah ada, perintahnya
        Quote:
        $ export NamaVariabelEnvironment=$NamaVariabelEnvironment:N ilaiBaru
    3. Histori Perintah Shell
      Jika Kita sering mengetikan perintah shell, Kita biasa menggunakan panah atas dan panah bawah untuk menggunakan perintah shell yang sudah pernah Kita berikan. Bahkan perintah tersebut akan terus ada walaupun Kita telah melakukan Log-off ataupun mematikan komputer. Kenapa bisa begitu? Karena semuanya tersimpan di dalam file .bash_history yang berada di direktori home setiap user. Contoh jika ingin melihat daftar histori perintah yang pernah diberikan, maka Kita bisa memberikan perintah history.

      Perintah untuk memanggil kembali, selain dengan panah atas dan panah bawah juga bisa dengan menggetikan nomor perintahnya. Misalnya, Kita ingin memanggil perintah ls -al yang pernah Kita berikan. Dari perintah history yang Kita lihat, ternyata perintah ls -al ini berada di nomor urut 11, maka perintah yang Kita gunakan adalah
      Quote:
      $ !11
    4. Alias dan Unalias
      Misalkan, Kita mempunya perintah yang sangat panjang tentu akan tidak efisien bila Kita sering menggetikan perintah yang panjang tersebut. Atau misalkan Kita ingin menggunakan bahasa Indonesia dengan perintah-perintahnya, semua hal tersebut dapat dilakukan dengan menggunakan alias. Perintahnya adalah
      Quote:
      $ alias NamaAlias=Perintah
      $ alias NamaAlias='Perintah'
      $ alias NamaAlias="Perintah"
      Contoh, Kita dapat memberikan perintah berikut
      Quote:
      $ alias la='ls -al'
      maka ketika Kita mengetikan perintah la, hasil yang muncul akan sama dengan Kita memberikan perintah ls -al.

      Hebatnya, Kita bahkan bisa mendefinisikan ulang perintah dasarnya. Contoh perintah berikut akan mengubah perilaku dari perintah ls
      Quote:
      $ alias ls='ls -al
      maka setiap kali Kita mengetikan ls maka hasil yang muncul adalah sama dengan perintah ls -al.

      Untuk melihat daftar alias yang telah ada, Kita dapat menggunakan perintah
      Quote:
      $ alias
      Untuk menghapus alias, Kita dapat menggunakan perintah
      Quote:
      $ unalias -a | NamaAlias
      Perintah -a artinya untuk menghapus semua alias yang aktif.
      Perintah alias ini akan disimpan per user, jadi user A bisa memiliki alias yang berbeda dengan user B.

Konfigurasi Printer Linux

Konfigurasi Printer

Konfigurasi printer yang paling umum di Linux adalah menggunakan CUPS. Untuk itu pastikan CUPS telah diinstall dan dijalankan.

Jika CUPS belum diinstall, Anda harus menginstall paket CUPS ini. Yang harus diinstall, adalah CUPS dan CUPS-drivers. Untuk mengetahui apakah CUPS ini sudah diinstall atau belum, Anda dapat mengetikan perintah # rpm -qa | grep cups.

Untuk memeriksa apakah CUPS telah dijalankan atau tidak, gunakan perintah service cups status. Jika ternyata belum dijalankan, gunakan perintah berikut untuk menjalankannya service cups start.

Ada 2 macam cara untuk melakukan konfigurasi printer, yaitu melalui Control Center (di Mandriva di namakan PrinterDrake) dan melalui Browser.

Konfigurasi printer melalui control center, sangat mudah sekali, seperti kita melakukan installasi printer di Windows, dan cara ini memang yang paling umum. Tetapi dalam pembahasan kali ini, Kita akan melakukan installasi printer melalui browser.

Untuk memulai konfigurasi, jalankan browser Anda dan ketikan localhost:631 pada alamat browser Anda. Bila muncul menu login, isikan username root dan passwordnya.

Berikut langkah-langkah installasi printernya:
  1. Pilih Add Printer
  2. Isikan Name, Location dan Description. Pengisian bebas, tetapi diusahakan pengisiannya sejelas mungkin agar orang lain yang membacanya dapat mengetahui tipe printer, lokasi printer tersebut.
  3. Pilih jenis koneksi dengan printer (paralel port, USB, serial port atau printer windows).
  4. Pilih merk printer
  5. Pilih tipe printer

Setelah langka-langkah tersebut dilakukan, maka installasi printer telah selesai dilakukan.

Saya memang tidak menjelaskan secara terperinci untuk masalah installasi printer ini, karena hal itu dapat dengan mudah dilakukan via GUI. Di sini, Saya akan lebih banyak menjelaskan tentang konfigurasi dari CUPS itu sendiri.

File konfigurasi printer berada di
Quote:
/etc/cups/printer.conf
Sedangkan file konfigurasi CUPS berada di
Quote:
/etc/cups/cupsd.conf
Bila printer Anda tidak berada dalam database driver CUPS, Anda dapat men-download versi terbaru dari CUPS di alamat http://cups.org.

Untuk printer HP (Hewlet Packard) yag mengalmi masalah berupa tidak bisa nge-print, dapat menggunakan driver foomatic.

Untuk melihat file log dari CUPS (bisa CUPS dirasakan ada masalah), ketikan perintah berikut:
Quote:
# tail -f /var/log/cups/error_log
Perlu diketahui bahwa perintah tersebut bersifat realtime, artinya proses penampilan log akan terus diupdate. Untuk kembali ke sheel, tekan Ctrl+C.

Bila printer Anda mengalami masalah dengan sharing ke Windows (tidak bisa nge-print), maka Anda harus:
  • Cek file /etc/cups/mime.convs
    Perhatikan di baris bawah, dan pastikan baris application/octet-stream tidak di comment.
  • Cek juga file /etc/cups/mime.types
    Perhatikan juga untuk baris yang sama. Dan pastikan juga diberikan comment.

Masalah ini yang harus Anda lihat terlebih dahulu, karena error inilah yang menyebabkan kesalahn terjadi. Setelah file konfigurasi di ganti, dan jalankan ulang service-nya dengan perintah service cups restart

Harddisk dan Mounting

Harddisk dan Mounting

Kita tahu bahwa saat ini, berdasarkan interface-nya HDD dapat dibagi menjadi 2 macam, yaitu yang menggunakan IDE dan menggunakan SATA.

Di Linux untuk pembagian HDD sebenarnya gampang. Untuk lebih mempermudah, Kita akan mulai membahas dari HDD yang berinterface IDE terlebih dahulu.

Umumnya, IDE terbagi menjadi 2, yaitu Primary dan Secondary. Nah, dari masing-masing IDE tersebut, dibagi lagi menjadi 2, yaitu master dan slave. Jadi urutannya akan menjadi seperti ini:
  1. Primary Master (hda)
  2. Primary Slave (hdb)
  3. Secondary Master (hdc)
  4. Secondary Slave (hdb)
Terlihat kalau urutannya di Linux dilambangkan dengan huruf a, b, c dan d.

Tetapi, perlu diingat juga, bahwa masing-masing HDD dapat juga dipartisi lebih dari 1. Nah, partisi sendiri bisa terdiri dari Primary Partition dan Extended Partition, yang terdiri dari beberapa logikal partisi.

Di Linux, setiap partisi dilambangkan dengan angka. Contoh, hda1 artinya Primary Partition pertama pada Primary Master HDD. Untuk lebih jelasnya, perhatikan penjelasan di bawah ini:
  • Primary Master
    • Primary Partition #1 (hda1)
    • Primary Partition #2 (hda2)
    • Extended Partition (hda5)
      • Logical Partition #1 (hda6)
      • Logical Partition #2 (hda7)
  • Secondary Slave
    • Primary Parttion #1 / CD-ROM (hdd1)
Anda lihat contoh di atas, ternyata untuk extended partition dimulai dari 5, dan logical partition juga dimulai dari 6. Dari mana angka tersebut? Kita tahu bahwa primary partition itu berjumlah maksimal 4 buah. Nah, di Linux, hda1 sampai dengan hda4 itu melambangkan primary partition di Primary Master HDD.

Untuk HDD yang bertipe SCSI dan USB-HDD ataupun USB Flash Disk, maka kode mountingnya adalah sda, sdb, dsb. Jadi perbedaannya hanyalah di huruf pertama saja yang diawali dengan huruf s, dimana untuk IDE diawali dengan huruf h.

Untuk membaca HDD, USB Flash Disk, CD-ROM, dsb (Selanjutnya disebut sebagai storage media), harus di lakukan mounting terlebih dahulu. Untuk distro-distro Linux terbaru, mounting storage media tersebut akan dilakukan secara otomatis. Tetapi bila ternyata belum dilakukan secara otomatis atau misalnya kita ingin melakukan mounting manual, Kita dapat menggunakan perintah mount.

Contoh:
  • Melakukan mounting terhadap HDD yang terletak di Primary Slave, pada partisi ke-2 yang mempunyai file system FAT32, perintahnya:
    mount -t vfat /dev/hdb2 /mnt/hdd2

    Perintah di atas akan melakukan mounting HDD tersebut ke direktori /mnt/hdd2, karena itu direktori hdd2 harus sudah ada sebelum melakukan mounting.
  • Melakukan mounting terhadap CD-ROM yang terletak di Secondary Slave, perintahnya:
    mount /dev/hdd /mnt/cdrom atau bisa juga dengan perintah berikut mount /dev/cdrom /mnt/cdrom.
  • Melakukan mounting terhadap USB Flash Disk, perintahnya:
    mount /dev/sda1 /mnt/usbfd

    Seringkali, USB Flash Disk tidak selalu di sda1. Untuk mengetahui USB Flash disk berada di mana, saat memasang USB Flash Disk, ketikan perintah berikut dmesg | tail . Nanti dari perintah tersebut akan muncul USB Flash disk tersebut berada di sda1, sdb1 atau yang lainnya.
  • Mounting ke jaringan linux yang beralamat IP 192.168.0.4 pada direktori /home/dokumen, perintahnya:
    mount -t nfs 192.168.0.4:/home/dokumen /mnt/nfs
  • Mounting ke jaringan windows yang beralamat IP 192.168.0.2 pada direktori sharing /home/dokumen, perintahnya:
    mount -t smbfs //192.168.0.2/home/dokumen /mnt/samba
    bila membutuhkan user name dan password, maka perintahnya menjadi:
    mount -t smbfs -o username=NamaUser,password=rahasia //192.168.0.2/home/dokumen /mnt/samba

    Perintah di atas, hanya bisa dilakukan bila samba client telah diaktifkan.

    Bagi yang menggunakan Windows 2003 Server, biasanya tidak bisa menggunakan smbfs, karena ada service dari Windows 2003 Server yang menghalangi. Untuk itu, coba gunakan file type cifs, perintahnya menjadi:
    mount -t cifs -o username=NamaUser,password=rahasia //192.168.0.2/home/dokumen /mnt/samba

    Perhatikan, karena menggunakan cifs, maka pastikan juga kalau cifs telah terinstall.
Terkadang setelah melakukan mounting, kita juga perlu untuk melakukan unmounting. Kegunaan dari perintah ini adalah untuk melepaskan file-file yang sedang digunakan, sehingga file tersebut tidak rusak. Contoh paling nyata adalah USB Flash disk, jika filenya dibuka dan USB Flash disk dicabut, maka ada kemungkinan file tersebut akan rusak. Jadi untuk amannya adalah menggunakan unmounting. Perintah unmounting adalah:
umount MountPoint.

Contoh berdasarkan contoh di atas, maka unmounting-nya adalah
  • umount /mnt/hdd2
  • umount /mnt/cdrom
  • umount /mnt/usbfd

Instalasi Dengan Menggunakan source code

Instalasi Dengan Menggunakan Kode Sumber


Unuk melakukan instalasi dengan kode sumber (source code) tidak terlalu susah, berikut adalah caranya:
  1. Ekstrak paketnya. Ada 2 macam kompresi yang umum di Linux, yaitu .tar.gz dan .tar.bz2.

    Untuk mengekstrak file dengan extensi .tar.gz, perintahnya
    Quote:
    $ tar -zxvf namapaket.tar.gz
    Untuk mengekstrak file dengan extensi .tar.bz2, perintahnya
    Quote:
    $ tar -jxvf namapaket.tar.bz2
  2. Konfigurasi paketnya
    1. Masuk ke direktori yang dihasilkan dari hasil ekstrak tadi
      Quote:
      $ cd DirektoriPaket
    2. Cek kompiler, compile dan install program dengan perintah berikut
      Quote:
      # ./configure
      # make
      # make install
      Langkah-langkah di atas adalah langkah yang umum, bisa saja tiap-tiap paket mempunyai cara yang berbeda, karena itu sangat disarankan untuk membaca petunjuknya terlebih dahulu.
    3. Bila saat installasi, ternyata membutuhkan compiler (misalnya: GTK+2), install paket tersebut, tetapi pilih yang devel. Contoh:
      Quote:
      urpmi gtk+2-devel
    4. Melakukan uninstall, masuk ke direktori paket tersebut
      Quote:
      #make uninstall
      Bila ternyata direktori paket tersebut telah dihapus, maka kita harus mengekstrak paketnya terlebih dahulu, kemudian melakukan perintah sebagai berikut
      Quote:
      # ./configure
      # make uninstall