Delay Pools Squid

SQUID – Delay POOLS

Another useful squid feature is delay pools. Conceptually, delay pools are bandwidth limitations – “pools” of bandwidth that drain out as people browse the Web, and fill up at a rate you specify – this can be thought of as a leaky bucket that is continually being filled.
This is useful when bandwidth charges are expensive like in indonesia.
Delay pools provide a way to limit the bandwidth of certain requests based on any list of criteria. The idea came from a Western Australian university who wanted to restrict student traffic costs (without affecting staff traffic, and still getting cache and local peering hits at full speed).

To enable this, configure squid with the –enable-delay-pools option. There are 3 classes of delay pools – class 1 is a single aggregate bucket, class 2 is an aggregate bucket with an individual bucket for each host in the class C, and class 3 is an aggregate bucket, with a network bucket (for each class B) and an individual bucket for each host.


Latar Belakang

Bandwidth merupakan barang yang mahal. Untuk saat ini kisaran 64 kps dihargai sekitar 4 jt perbulan. Permasalahnnya bandwith 64 kbits itu bukan nilai yang besar. Rata-rata yang didapat pelanggan adalah 64 1:2. Artinya 1 jalur 64 kbits digunakan untuk 2 pelanggan sekaligus.
Sudah bandwidthnya dibatasi terkadang pula disisi user ada yang bertingkah seenaknya. Merasa ada koneksi internet gratis, beberapa user mulai menggunakannya untuk membuka situs-situs tertentu atau mengkoleksi file-file tertentu. Tentu saja alokasi bandwidth yang tersedia semakin menyusut. Yang merasakan adalah golongan user yang biasa-biasa saja (bukan mania internet), mereka hanya bisa mengelus dada.Untuk mengatasi hal diatas, agar setiap user mendapat bandwidth yang cukup, bisa digunakan aplikasi squid proxy server.

Pelaksanaan

Sebelum mulai mengkonfigurasi delay pools, harus dipersiapkan terlebih dahulu aplikasi squid yang sudah dikompilasi dengn support delay pools. Beberapa distro besar seperti RedHat/Mandrake biasanya sudah di atur support delay pools.
Bila tidak dapat dikompilasi sendiri sebagai berikut

# ./configure --enable-delay-pools
# make
# make install

konfigurasi

File konfigurasi squid adalah squid.conf
ada beberapa tag konfigurasi untuk delay pools di squid.conf.

  1. delay_pools
    menyatakan berapa banyak bagian/pool yang akan dibuat
    misal delay_pools 2
  2. delay_class
    menentukan klas/tipe pembagian bandwith dari setiap pool. 1 pool hanya boleh memiliki 1 clas, tidak lebih atau kurang.
    bagian merupakan nomer urut dari jumlah pool didelay pool, jadi ada 1 s/d n bagian dimana n merupakan angka jumlah pada delay_pools
    tipe merupakan tipe class delay yang dipakai.
    Secara umum tipe menyatakan bagaimana cara membagi bandwidth, ada 3 tipe:
tipe/class keterangan
1 semua bandwidth yang ada akan dibagi sama rata untuk semua user squidex ada bandwidth 128 dan semua bandwith dipakai untuk browsing
2 membatasi pemakaian bandwith dari total bandwidth yang ada, dan bandwith yang diperuntukan squid akan dibagi semua user dengan sama rata.ex ada bandwidth 128 dimana 28 kbit dipakai untuk email dan sisanya (128-28) 100 kbit dipakai untuk browsing
3 membatasi pemakaian bandwidth dari total bandwidth yang ada, setiap network class C akan mendapat bandwidth sama besar, setiap user pernetwork akan mendapat bandwidth yang sama besar dari total bandwidth per networkex: bandwidth tersedia 512 kb, untuk browsing disediakan bandwidth 384 kb, sisanya untuk aktifitas lain.
Di jaringan tersebut ada 3 departement dengan network yang berbeda misal lab (192.168.1.0/24), manajer(192.168.2.0/24), sales(192.168.3.0/24).
nah misah oleh admin di set bahwa pernetwork mendapat jatah 128 kb/s.
maka user� di sales akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.
maka user� di lab akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.
maka user� di manajer akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.

misal:

delay_class 1 2    # pool 1 memakai clas tipe 2
delay_class 2 3 # pool 2 memakai clas tipe 3

  • delay_access
    Memberi batasan siapa saja yang boleh mempergunakan delay pools ini.
    Penting untuk diingat sebaiknya setelah menetukan batasan jangan lupa di akhiri dengan deny all.
    misal:
    delay_access 1 allow manajer
    delay_access 1 deny all
    delay_access 2 allow sales
    delay_access 2 deny all
  • delay_parameters
    Ini adalah bagian terpenting dari delay pools memberikan aturan main setiap delay pools yang dibentuk.
    delay parameter mempunyai format yang disesuaikan dengan tipe/class yang dipakai.
    Tapi disetiap tipe yang dipakai ada 1 format baku yaitu restore/max.restore menunjukkan maksimum kecepatan data yang dapat dilewatkan bila harga max sudah terlampaui, dalam satuan bytes/second

    max menunjukkan besar-nya file atau bucket yang dapat dilewatkan tanpa melalui proses delay. dalam satuan bytes.

    Yang perlu diperhatikan dari satuan diatas adalah harga restore dimana kita sering menerima/menyewa/membeli bandwidth dari provider dalam satuan bits/second bukan bytes/second. Sedangkan satuan kecepatan yang ditunjukkan oleh Microsoft pada saat mendonlot file adalah bytes/sec.
    Sedangkan satuan dari harga max sudah sesuai dengan kebiasaan sehari-hari, dimana kita memberi besaran bytes pada file-file.
    1 byte = 8 bit.

    SpesialCase: -1/-1 berarti unlimited atau tidak dibatasi pada nilai restore/max

    ex: 1000/64000 harga restore sama dengan 8000 bits/sec atau 8 kbits/sec.
    Yang artinya user akan mendapat donlot brustable selama file yang akan dibuka lebih kecil dari 64 kbytes, jadi kecepatan bisa diatas 8 kbit/sec.
    Bila ternyata file yang dibuka melebihi 64 bytes, maka proses limitasi akan segera dimulai dengan membatasi kecepatan maksimal 8 kbits/s.

    class 1
    delay_parameters <#pool individual>
    ex: delay_parameters 1 1000/64000
    Berarti semua network akan mendapat bandwidth yang sama di pool no 1.
    Sebesar 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.
    class 2
    delay_parameters <#pool agregate individual>
    ex: delay_parameters 1 32000/32000 1000/64000
    Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari semua bandwidth.
    Bila terdapat lebih dari 1 network class C, maka total yang dihabiskan tetap 256 kbit/sec
    dan tiap user akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.
    class 3
    delay_parameters <#pool agregate network individual>
    ex: delay_parameters 1 32000/32000 8000/8000 1000/64000
    Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari semua bandwidth.
    Bila terdapat lebih dari 1 network class C, maka setiap network akan dipaksa maksimum sebesar (8000*8) 64 kbits/sec
    dan tiap user pada satu network akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.
  • Contoh 1

    dalam 1 network dengan penggunaan bandwidth total tidak dibatasi terdapat beberapa komputer dengan klasifikasi sebagai berikut

    • admin, server dengan bandwidth unlimited
    • staff dengan bandwidth 1,5 kbytes/sec, bila file yang diakses melebihi 64Kbte
    • umum dengan bandwidth 1 kbytes/sec, bila file yang diakses melebihi 32 Kbyte
    acl all src 0.0.0.0/0.0.0.0
    acl admin src 192.168.1.250/255.255.255.255
    acl server src 192.168.1.251/255.255.255.255
    acl umum src 192.168.1.0/255.255.255.0
    acl staff src 192.168.1.1 192.168.1.111 192.168.1.2 192.168.1.4 192.168.1.71

    delay_pools 3

    delay_class 1 1
    delay_parameters 1 -1/-1
    delay_access 1 allow admin
    delay_access 1 allow server
    delay_access 1 deny all

    delay_class 2 1
    delay_parameters 2 1500/64000
    delay_access 2 allow staf
    delay_access 2 deny all

    delay_class 3 1
    delay_parameters 3 1000/32000
    delay_access 3 allow umum
    delay_access 3 deny all

    Cara mencobanya paling mudah adalah dengan menggunakan donlot manajer semacam DAP, GetRight maka akan terlihat bandwidth sudah dibatasi.

    Contoh 2

    Delay pools juga dapat digunakan untuk membatasi donlot file untuk extensi tertentu.
    Gunakan ACL url_regex untuk mengatasi hal ini.
    Contoh dibawah digunakan untuk membatasi donlot file multimedia hingga 1 kByte/sec.

    acl multimedia url_regex -i \.mp3$ \.rm$ \.mpg$ \.mpeg$ \.avi$ \.dat$
    delay_pools 1
    delay_class 1 1
    delay_parameters 1 1000/16000
    delay_access 1 allow multimedia
    delay_access 1 deny ALL

    Contoh 3 dari forum.linux.or.id

    bagaimana caranya membuat delay pools untuk membatasi download di siang hari untuk 15 klient sedangkan malam harinya lost asumsi jamnya ( 10:00 – 21:00)

    acl LTIME time SMTWHFA 10:00-21:00

    acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
    acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
    acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$
    acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
    acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
    acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$

    delay_pools 1

    delay_class 1 1
    delay_parameters 1 3000/3000
    delay_access 1 allow download TIME
    delay_access 1 deny all

    Contoh 4

    Bagaimana caranya membuat delay pools untuk membatasi download di siang hari dengan speed … dan malam hari dengan speed …, abis si bozz malem-nya mau pakai buat dolot.
    Jadi pengennya pas malam bw buat user makin kecil, bukan malah di loss

    acl JAM_KANTOR time SMTWHFA 07:00-18:00

    delay_pools 2 delay_class 1 2
    delay_parameters 1 24000/32000 -1/-1
    delay_access 1 allow riset JAM_KANTOR
    delay_access 1 deny all

    delay_class 1 2
    delay_parameters 2 8000/8000 -1/-1
    delay_access 2 allow riset !JAM_KANTOR
    delay_access 2 deny all

    Contoh 5

    Saya ada bandwidth besar, 1mbps.
    Ingin membatasi yang donlot file besar di atas 5mbyte, di beri speed 32kbps.
    Misal bila ada 3 user yang donlot, tiap-tiap user akan mendapat bw maximal 32kbps.

    acl user src 192.168.1.0/24

    delay_pools 1
    delay_class 1 2
    delay_parameters 1 40000/10000000 4000/5000000
    delay_access 1 allow user download
    delay_access 1 deny ALL

    Contoh 6 limit youtube

    untuk memaksa caching terhadap youtube ( sesuai wiki.squid-cache.org )

    acl youtube dstdomain -i .youtube.com
    acl striming url_regex -i get_video\?video_id videodownload\?
    cache allow youtube
    cache allow striming

    dan harap di ingat untuk posisi tsb di atas sebaiknya diletakkan sebelum hierarchy_stoplist
    kemudian bisa di gabung ke delay_pool juga

    delay_class 2 3
    delay_access 2 allow warnet striming
    delay_access 2 deny all
    delay_parameters 2 -1/-1 -1/-1 3000/200000

    hasilnya :

    Connection: 0x7f1da510
    FD 149, read 555, wrote 6508975
    FD desc: http://ash-v97.ash.youtube.com/get_video?video_id=YXF72VCyt5M
    in: buf 0x7fe65000, offset 0, size 4096
    peer: 192.168.0.111:3317
    me: 127.0.0.1:3127
    nrequests: 1
    defer: n 0, until 0
    uri http://ash-v97.ash.youtube.com/get_video?video_id=YXF72VCyt5M
    log_type TCP_MISS
    out.offset 6508872, out.size 6508975
    req_sz 555
    entry 0x7d24e240/599CDB16D8D8DCB1395E960CD807BD8B
    old_entry 0x0/N/A
    start 1193286572.113589 (2131.525289 seconds ago)
    username -
    delay_pool 2 <= terkena delay

    untuk delay_pool saya tidak menggunakan domain youtube.com, karena ternyata untuk url streaming nya sebagian hanya menggunakan ip address biasa, sehingga menggunakan regex spt di atas saya rasa lebih efektif.
    silakan di eksperimen sendiri untuk regex nya, bisa dg menganalisa access.log atau kalau yg gampang menggunakan sqstat spt yg pernah di post di thread sebelah.


    http://kebofunky.wordpress.com/2008/04/10/ini-adalah-contoh-untuk-mensetting-ipv6-manual-di-fedora-core-not-tutorial-cachakcachak-ip-6-r2001d30f100364-dev-eth0-proto-kernel-metric-256-expires-42943sec-mtu-150/

    Lanjutan Perintah dasar Linux

    Lanjutan Perintah dasar Linux

    Untuk lebih detail berikut daftar ringkas perintah-perintah yang ada di Linux2 :

    PERINTAH KETERANGAN
    any _ command --help |more Menampilkan keterangan bantu tentang pemakaian perintah. "-- help" sama dengan perintah pada DOS " /h".

    Perintah "more" diperlukan agar screen stop setiap 1 layar.
    Ls Melihat isi file dari direktori aktif.

    Pada linux perintah "dir" hanyaberupa alias dari perintah "ls".

    Untuk perintah "ls" sendiri sering dibuatkan liaas "ls --color", agar pada waktu di "ls" ditampilkan warna-warna sesuai dengan file-filenya, biasanya hijau untuk execute, dsb.
    ls -al | more Melihat seluruh isi file pada direktori aktif beserta file hidden,lalu ditampilkan layar per layar.

    cd directory Change directory.Menggunakan "cd" tanpa nama direktori akan menghantarkan anda ke home direktori. Dan "cd -" akan menghantarkan anda ke direktori sebelumnya.
    cp source destination Mengopi suatu file
    mcopy source destination Mengcopy suatu file dari/ke dos filesystem. Contoh mcopy a:autoexec.bat ~/junk . Gunakan "man mtools" untuk command yang sejenis : mdir, mcd, mren, mmove, mdel, mmd, mrd, mformat ....

    mv source destination Memindahkan atau mengganti nama file
    ln -s source destination Membuat Simbolic Links, contoh "ln –sf
    /usr/X1 1R6/bin/XF86_SVGA /etc/X1 1/X, membuat Simbolic link dari file XF86_S VGA ke X
    rm files Menghapus file
    mkdir directory Membuat direktori baru
    rmdir directory Menghapus direktori yang telah kosong
    rm -r files (recursive remove) Menghapus file, direktori dan subdirektorinya. Hati-hati menggunakan perintah ini apabila anda login sebagai root, karena root dengan mudah dapat menghapus seluruh file pada sistem dengan perintah di atas, tidak ada perintah untuk undelete di Linux (belum). Tetapi jika anda penasaran, coba saja perintah berikut dan jalankan sebagai root : rm -rf /*
    cat filename | more Untuk melihat isi suatu file, dengan tambahan perintah more, maka isi file tersebut ditampilkan layar per layar.

    less filename Melihat suatu file layar per layar, dan tekan tombol "q" apabila ingin keluar, "less" hampir sama dengan perintah "cat filename | more".
    pico filename Edit suatu text file.
    pico -w filename Edit suatu text file, dengan menonaktifkan fungsi word wrap, sangat berguna untuk mengedit file seperti /etc/fstab.
    lynx file.html Melihat file html atau browse ke net dengan text mode, dimana gambar/image tidak dapat ditampilkan, tapi lynx adalah suatu browser yang sangat cepat, sangat berguna bila anda hanya menginginkan suatu artikel tanpa image.
    tar -zxvf filename.tar.gz Meng-untar sebuah file tar sekaligus meng-uncompress file tersebut (*.tar.gz or *.tgz), untuk meletakkannya direktori yg diinginkan tambahkan option -C direktori, contoh tar -zxvf filename.tar.gz -C /opt (meletakkan file tersebut di direktori /opt
    tar -xvf filename .tar Menguntar sebuah file tar yang tidak terkompress (*.tar).
    gunzip filename.gz Meng-uncompress sebuah file zip (*.gz" or *.z). dengan menggunakan gzip (juga zip atau compress) jika anda menginginkan mengompress file. bunzip2 filename.bz2 Meng-uncompress file dengan format (*.bz2) dengan utiliti "bzip2", digunakan pada file yang besar.
    unzip filename.zip Meng-uncompress file dengan format (*.zip) dengan utiliti "unzip" yang kompatibel dengan pkzip for DOS.
    find / -name "filename" Mencari "namafile" pada komputer anda dimulai dengan direktori / Namafile tersebut mungkin saja berisi wildcard (*,?).

    locate filename Mencari file dengan string "filename". Sangat mudah dan cepat dari perintah di atas.
    pine Email reader yang sangat mudah digunakan, dan menjadi favorit banyak pemakai mesin Unix. Atau anda bisa pakai email yang sangat customize, yaitu "mutt",
    talk username1 Berbicara dengan keyboard dengan user lain yg sedang login pada mesin kita (atau gunakan "talk username1@machinename" untuk berbicara dengan komputer lain) . Untuk menerima undangan percakapan, ketikkan"talk username2". Jika seseorang mencoba untuk berbicara dengan anda dan itu dirasakan mengganggu, anda bisa menggunakan perintah "mesg n" untuk menolak pesan tersebut. Dan gunakan perintah "who" atau "rwho" untuk melihat siapa user yang mengganggu tersebut.
    mc Menjalankan "Morton Commander" ... eh... salah maksudnya "Midnight Commander" sebagai file manager, cepat dan bagus.
    telnet server Untuk menghubungkan komputer kita ke komputer lain dengan menggunakan protokol TELNET. Gunakan nama mesin atau Nomor IP mesin, dan anda akan mendapatkan prompt login name dari mesin tersebut, masukkan passwordnya, oh ya .. anda juga harus punya account di mesin remote tersebut. Telnet akan menghubungkan anda dengan komputer lain dan membiarkan anda untuk mengoperasikan mesin tersebut. Telnet sangat tidak aman, setiap yang
    anda ketik menjadi "open text", juga dengan password anda !
    rlogin server (=remote login) Menghubungkan anda ke komputer lain. Loginname dan password, tetapi apabila account anda tersebut telah dipakai, maka anda akan mendapatkan pesan kesalahan pada password anda.
    rsh server (=remote shell) Jalan lain untuk menghubungkan anda ke remote machine. Apabila login name/password anda sedang dipakai di remote mesin tsb, maka password anda tidak akan berlaku.
    ftp server Ftp ke mesin lain, ini sangat berguna untuk mengopy file ke/dari remote mesin.
    minicom Progam Minicom (dapat dikatakan seperti "Procomm for Linux").
    ./program_name Menjalankan program pada direktori aktif, yang mana tidak terdapat pada PATH anda
    xinit Menjalankan X-window server (tanpa windows manager).

    startx Menjalankan X-window server dan meload default windows
    manager. Sama seperti perintah "win" under DOS dengan Win3.1
    startx -- :1 Menjalankan sesi X-windows berikutnya pada display 1 (default menggunakan display 0). Anda dapat menjalankan banyak GUI terminal secara bersamaan, untuk pindah antar GUI gunakan ,
    , etc, tapi ini akan lebih banyak memakan memori.
    xterm (pada X terminal) ,menjalankan X-windows terminal. Untuk keluar
    ketikkan "exit"
    xboing (pada X terminal). Sangat lucu deh ...., seperti games-games lama
    gimp (pada X terminal) Program image editor yang sangat bagus, bisa disamakan dengan Adobe Photoshop, yang membedakan adalah program ini gratis.
    netscape (pada X terminal) menjalankan netscape, versi pada waktu tulisan ini dibuat telah mencapai versi 4.7
    netscape -display host:0.0 (pada X terminal) menjalankan netscape pada mesin yang aktif dan menampilkan outputnya pada mesin yang bernama "host" display 0 screen 0. Anda harus memberikan akses untuk mesin aktif untuk menampilkannya pada mesin "host" dengan perintah "xhost"
    shutdown -h now (sebagai root) Shut down sistem. Umumnya digunakan untuk remote shutdown. Gunakan
    halt reboot (sebagai root) Halt atau reboot mesin. Lebih simple dari perintah di atas. man topic Menampilkan daftar dari sistem manual pages (help) sesuai dengan topic. Coba "man man". lalu tekan "q" untuk keluar dari viewer.
    Perintah "info topic" Manual pages dapat dibaca dilhat dengan cara "any_command --help".
    apropos topic Menampilkan bantuan manual berdasarkan topik..
    pwd Melihat direktori kerja saat ini
    hostname Menampilkan nama local host (mesin dimana anda sedang bekerja). Gunakan perintah "netconf" (sebagai root) untuk merubah nama host dari mesin tersebut, atau edit file /etc/hosts
    whoami Mencetak login name anda
    id username Mencetak user id (uid) atau group id (gid)
    date Mencetak atau merubah tanggal dan waktu pada komputer, contoh merubah tanggal dan waktu ke 2000-12-31 23:57 dengan perintah : date 123123572000 time Melihat jumlah waktu yg ditangani untuk penyelesaian suatu proses + info lainnya. Jangan bingung dengan perintah "date"
    who Melihat user yang login pada komputer kita.
    rwho -a Melihat semua user yg login pada network anda. Layanan perintah rwho
    ini harus diaktifkan, jalankan setup sebagai root untuk mengaktifkannya.
    finger user _name Melihat informasi user, coba jalankan : finger root last Melihat user sebelumnya yang telah login di komputer.
    uptime Melihat jumlah waktu pemakaian komputer oleh seseorang, terhitung proses reboot terakhir.
    ps (=print status) Melihat proses-proses yang dijalankan oleh user
    ps axu | more Melihat seluruh proses yang dijalankan, walaupun tanpa terminal control, juga ditampilkan nama dari user untuk setiap proses.
    top Melihat proses yang berjalan, dengan urutan penggunaan cpu.
    uname -a Informasi system kernel anda
    free Informasi memory (dalam kilobytes).
    df -h(=disk free) Melihat informasi pemakaian disk pada seluruh system (in human-readable form)
    du / -bh | more (=disk usage) Melihat secara detil pemakaian disk untuk setiap direktori, dimulai dari root (in human legible form).
    cat /proc/cpuinfo Cpu info. Melihat file pada /proc directori yang bukan merupakan file nyata (not real files).
    cat /proc/interrupts Melihat alamat interrupt yang dipakai.
    cat /proc/version Versi dari Linux dan informasi lainnya.
    cat /proc/filesystems Melihat filesystem yang digunakan.
    cat /etc/printcap Melihat printer yang telah disetup
    lsmod (as root) Melihat module-module kernel yang telah di load.
    set|more Melihat environment dari user yang aktif
    echo $PATH Melihat isi dari variabel "PATH". Perintah ini dapat digunakan untuk menampilkan variabel environmen lain dengan baik. Gunakan "set" untuk
    melihat environmen secara penuh.
    dmesg Mencetak pesan-pesan pada waktu proses boot. (Menampilkan file: /var/log/dmesg.)

    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