Lokakarya BlankOn Linux Surabaya 2-9-2017

1. Proses Booting

Ketika pertama kali menyalakan atau melakukan restart komputer, ada beberapa rangkaian proses yang dijalankan oleh prosesor sebelum masuk ke jendela login sistem operasi anda. Proses tersebut adalah proses menjalankan atau me-nonaktifkan layanan-layanan yang ada pada sistem komputer anda, mulai dari proses eksekusi kode sumber BIOS (Basic Input Output System), hingga menjalankan proses init. Serangkaian proses tersebut sering disebut dengan proses booting.

Secara garis besar urutan proses booting komputer adalah sebagai berikut:

  • Power On Selft Test (POST)
    POST adalah rangkaian pengecekan terhadap perangkat keras komputer. Pada proses ini, BIOS (Basic Input Output System) merupakan antarmuka yang menghubungkan komputer dengan periperal lainnya.
  • Loader
    Setelah proses POST didapati tidak terjadi masalah dengan perangkat keras komputer, maka komputer akan mencari image sistem operasi yang terdapat pada media penyimpanan. Biasanya langkah ini akan dilakukan secara beruntun mulai harddisk, cdrom, floppy, atau perangkat yang lainnya, tergantung pada setting konfigurasi BIOS anda.
  • Master Boot Record (MBR)
    MBR merupakan sektor pertama pada harddisk yang akan dibaca pertama kali, biasanya pada MBR di install Loader yaitu program yang berfungsi untuk memanggil kernel. Pada Linux loader terdapat dua loader yaitu LILO (Linux Loader) dan GRUB (GRand Unifield Bootloader).
  • Kernel
    dengan image kernel ini akan dilakukan inisialisasi perangkat keras dan periperal yang terpasang pada komputer.
  • Init
    Init adalah program yang dijalankan pada level kernel, pada proses ini program ini akan mengaktifkan sistem operasi dan service-service pada sistem operasi, selain itu juga mengatur level sistem operasi bekerja. Secara default level sistem diatur ke modus grafis namun anda dapat mengonfigurasinya ke modus text.
    Level yang berjalan pada program ini adalah:
Runlevel Deskripsi
0 Mengarahkan komputer untuk shutdown.
1 Level single mode, hal ini hanya user root yang dapat log in. Dalam mode ini sistem tidak menjalankan semua jaringan, X window atau layanan multi-user.
2 Level multi user tanpa dukungan jaringan.
3 Mirip dengan runlevel 2, bedanya di runlevel ini layanan jaringan akan dijalankan. Runlevel ini yang paling sering digunakan untuk sistem server yang tidak memerlukan lingkungan desktop.
4 Runlevel ini tidak digunakan. Runlevel ini dikonfigurasi untuk boot state.
5 Level multi user dengan dukungan jaringan dan tampilan grafis.
6 Mengarahkan komputer untuk reboot/restart.

2. Struktur Direktori Linux

File sistem merupakan kumpulan file-file pada suatu media penyimpanan di mana mekanisme file-file tersebut diorganisasikan. File sistem Linux tersusun dari sejumlah file dan direktori. Puncak dari hirarki direktori paling atas sering disebut dengan root direktori (/) yang memiliki sejumlah cabang yang disebut dengan direktori. Direktori yang berada tepat di bawah root direktori biasanya bersifat standar, seperti terlihat pada gambar dibawah ini.

Setelah proses instalasi, Linux akan menciptakan sistem file baku, terdiri atas direktori sebagai berikut:

Direktori Deskripsi
/etc Berisi file administrative (konfigrasi dll) atau script yang berguna untuk administrasi sistem.
/dev Berisi file khusus yang merepresentasikan peralatan hardware seperti memori, disk, printer, tape, floppy, jaringan dll.
/bin Berisi utilitas sistem level rendah (binary)
/sbin Berisi utilitas sistem untuk super user (membentuk administrasi sistem)
/usr/sbin
/usr/bin
Berisi utilitas sistem dan program aplikasi level tinggi.
/usr/lib Berisi program library yang diperlukan untuk kompilasi program (misalnya C). Berisi instruksi (command) misalnya untuk Print Spooler (lpadmin) dll.
/tmp Berisi file sementara, yang pada saat Bootstrap akan dihapus (dapat digunakan oleh sembarang user).
/boot Berisi file yang sangat penting untuk proses bootstrap. Kernel vmlinuz disimpan di direktori ini.
/proc Berisi informasi tentang kernel Linux, proses dan virtual system file.
/var Direktori variable, artinya tempat penyimpanan LOG (catatan hasil output program), file ini dapat membengkak dan perlu dimonitor perkembangannya.
/home Berisi direktori untuk pemakai Linux.
/mnt Direktori untuk mounting sistem file.
/root Home direktori untuk superuser (root).
/usr/bin/X11 Symbolic link ke /usr/X11R6/bin, program untuk X-Window.
/usr/src Berisi kode sumber Linux.
/opt Option, direktori ini biasanya berisi aplikasi tambahan (“add-on”) seperti Netscape Navigator, kde, gnome, applix dll.

3. Perintah Dasar Linux

Linux yang anda gunakan saat ini, secara penampilan dan kemudahan sistem kerja sudah tidak lagi berbeda dengan sistem operasi Windows. Kemudahan-kemudahan seperti ini seharusnya tidak melupakan kita terhadap teknik menjalankan perintah dengan command line atau baris perintah dalam lingkungan shell. Keuntungan menggunakan baris perintah perintah adalah efektifitas dan maksimalitas kerja. Pemula Linux sebaiknya mengetahui dan sedikitnya pernah menggunakan baris perintah ini karena suatu saat pengetahuan akan perintah-perintah ini bisa sangat diperlukan. Setiap pemakai Linux harus mempunyai nama login (user account) yang sebelumnya harus didaftarkan pada administrator sistem, nama login pada umumnya dibatasi maksimum 8 karakter dan umumnya dalam huruf kecil. Prompt dari shell bash pada Linux menggunakan tanda “$”.

Sebuah sesi pada Linux pada umumnya terdiri dari:

  • Login
  • Bekerja dengan shell/menjalankan aplikasi
  • Logout

Tergantung atas shell yang digunakan, pada Linux bash maka pada proses login akan mengeksekusi program /etc/profile (untuk semua pemakai) dan berkas bash_profile didirektori HOME masing-masing. Sedangkan pada saat logout, maka program shell bash akan mengeksekusi berkas yang bernama bash_logout.

Format perintah Linux standar mempunyai format sebagai berikut:

  $nama_perintah [pilihan] [argumen]

Pilihan adalah option yang dimulai dengan tanda minus (-). Argumen dapat kosong, satu atau beberapa beberapa argumen (parameter).

Contoh:

$ ls tanpa argumen
$ ls -a option adalah -a=all, tanpa argumen
$ ls /bin tanpa option, argumen adalah /bin
$ ls /bin /etc /usr ada 3 argumen
$ ls -l /usr 1 option dan 1 argumen
$ ls -la /bin /etc 2 option -l dan -a dan 2 argumen

Linux menyediakan manual secara online. Manual tersebut akan menampilkan bagaimana cara penggunaan sebuah perintah/instruksi.

  $man ls

akan menampilkan cara penggunaan perintah ls

Ada beberapa kunci papan ketik yang penting dalam penggunaan manual adalah:

Q
untuk keluar dari program man
<enter>
ke bawah, baris per baris
<spasi>
ke bawah, per halaman
b
kembali keatas, 1 halaman
/teks
mencari teks (string)
n
meneruskan pencarian string sebelumnya

Manual dibagi atas bab-bab sebagai berikut:

Bab Isi
1 User command
2 System Calls
3 Library Calls
4 Devices
5 File format
6 Games
7 Miscellanous
8 System Commands
9 Kernel Internal
N Tcl/Tk command

Berikut ini adalah beberapa rangkuman perintah praktis Linux, yang sering digunakan baik untuk pemula maupun mahir.

Memulai dan Mengakhiri Linux
shutdown -h now Untuk mengakhiri Linux
halt Untuk mengakhiri Linux
shutdown -r now Me-reboot Linux
reboot Me-reboot Linux
startx Untuk menajalankan X window server
Memanipulasi File dan Direktori
cd Untuk pindah direktori kerja
cd .. Untuk pindah direktori kerja dibawah direktori kerja saat ini
ls Untuk menampilkan isi dari sebuah direktori
rm Untuk menghapus berkas
mv Untuk memindahkan berkas atau direktori
ls -l Untuk menampilkan semua file dalam direktori dengan format long (panjang)
rm -rf Untuk menghapus direktori
Mounting dan Mengakses Filesystem
mount -t iso9660 /dev/cdrom /mnt/ Me-mount cdrom dalam format iso9660 dan meletakkannya pada direktori /mnt
mount -t msdos /dev/hda /mnt Me-mount harddisk hda dalam format msdos dan meletakkannya pada direktori /mnt
mount -t vfat /dev/hda1 /mnt Me-mount harddisk hda1 dalam format vfat dan meletakkannya di /mnt
umount /mnt Mengakhiri mounting pada /mnt
Instalasi Aplikasi
apt-get install <nama_aplikasi> Untuk memasang aplikasi
apt-get remove <nama_aplikasi> Untuk membuang aplikasi
dpkg -i file.deb Untuk memasang aplikasi menggunakan file biinary .deb

sudo merupakan perintah yang dapat digunakan untuk menjalan perintah dengan hak akses “root” (super user) oleh pengguna biasa. Seorang administrator dapat mendelegasikan tugas administratifnya kepada pengguna lain tanpa memberikan password root kepada pengguna tersebut.

su hampir sama dengan sudo, perbedaannya adalah saat menjalankan perintah ini password yang digunakan adalah password root, bukan password pengguna biasa. Jadi administrator harus memberikan password root kepada pengguna yang akan menjalankan perintah ini.

Contoh penggunaannya sudo :

haryani@test1:~$ sudo poweroff
[sudo] password for haryani:         

Contoh penggunaan su :

haryani@test1:~$ su -c poweroff
Password: 

4. Manajemen User dan Group

Manajemen user dan group merupakan elemen dasar dalam administrasi sistem operasi Linux. User dalam hal ini dapat berupa akun atau akun yang dimiliki dan digunakan oleh sebuah aplikasi. Grup merupakan ekspresi logikal organisasi yaitu sekelompok user yang secara bersama mempunyai tujuan yang sama. User dalam satu grup dapat mempunyai akses yang sama baik membaca, menambah, atau menghapus. Setiap user atau grup mempunyai nomor identitas unik yang dikenal dengan nama UserID (UID) dan GroupID (GID).

Berikut adalah perintah-perintah yang dapat digunakan untuk melakukan pengelolaan user dan grup.

  • Useradd, usermod, userdel, merupakan standar yang digunakan untuk menambah, mengubah, dan menghapus user.
  • Groupadd, groupmod, groupdel, merupakan standar yang digunakan untuk menambah, mengubah, dan menghapus group.
  • Gpasswd, standar yang digunakan untuk mengelola berkas /etc/groups.
  • Pwck, grpck, perintah yang digunakan untuk memverifikasi password, group, dan file shadow.
  • Pwconv, pwunconv, perintah yang digunakan untuk melakukan konversi password standar ke password shadow.

Pada sistem Linux, user dibedakan menjadi 3 kelompok, yaitu:

  1. User Admin/Super User
    Yang dimaksud dengan super user adalah user yang bertanggung jawab penuh terhadap sistem dengan tugas yang tidak terbatas. Beberapa tugas super user diataranya adalah mengkonfigurasi sistem, melakukan update sistem, melakukan manajemen user dan group, dan sampai menghapus sistem secara keseluruhan.
    Super user sering disebut dengan user “root”, walaupun mempunyai wewenang yang tidak terbatas, user root juga dapat dibatasi. Tujuannya adalah meminimalisasi kesalahan yang terjadi nantinya.
    Super user “root” memiliki UID=0 dan GID=0, sehingga bila kelompok dan user lain diset UID dan GID yang sama makan kelompok dan user tersebut akan memiliki wewenang yang sama dengan user “root”.
    $ cat /etc/passwd |grep root
    root:x:0:0:root:/root:/bin/bash
  2. User Sistem
    User sistem adalah kelompok user yang menjalankan aplikasi daemon user sistem tersebut. User sistem memiliki UID dan GID di atas 0 dan di bawah 500. contoh user sistem beberapa diataranya adalah mail, news, lp, sshd, apache, dan lain sebagainya.
    $ cat /etc/passwd |grep lp
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
  3. User Pengguna
    Yang dimaksud dengan user pengguna adalah user yang dibuat oleh user root dengan UID dan GID diatas 500. User pengguna memiliki wewenang hanya pada home direktori user tersebut sehingga apabila salah satu pengguna mengalami error tidak mempengaruhi user yang lain.
    $ cat /etc/passwd |grep tamu
    tamu:x:501:501:tamu:/home/tamu:/bin/bash

Sistem operasi Linux merupakan sistem operasi multiuser atau banyak pengguna. Linux bisa digunakan oleh banyak pengguna yang memiliki ruang dan lingkungan masing- masing. Setiap pengguna juga memiliki akun pengguna dan kata sandi pengguna. Nama pengguna dan kata sandi ini akan diminta pada saat pertama kali menjalankan Linux. Selain itu, di Linux juga dikenal dengan istilah Group yaitu sekumpulan dari pengguna yang memiliki hak dan wewenang tertentu. Oleh karena itu, pengetahuan manajemen pengguna dan grup sangat dibutuhkan dalam mempelajari Linux. Baik bagi mereka yang sekedar pengguna rumahan yang hanya memiliki satu jenis pengguna di sistem mereka, ataupun mereka yang bertindak sebagai sistem administrator.

Untuk membuat user dan group hanya dapat dilakukan oleh super user “root”. Perintah untuk membuat user baru adalah adduser[spasi]nama_user sedangkan untuk mengisi password user yang dibuat passwd[spasi]nama_user. Berikut ini contoh penggunaannya:

# adduser haryani
Adding user `haryani' ...
Adding new group `haryani' (1003) ...
Adding new user `haryani' (1002) with group `haryani' ...
Creating home directory `/home/haryani' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for haryani
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n]

Beberapa informasi yang perlu diketahui pada perintah diatas adalah:

  • Home direktori user sama dengan nama user /home/haryani
  • Shell bash yang digunakan adalah /bin/bash
  • user “haryani” tersebut tidak memiliki expired date

Mengganti password baru cukup menjalankan perintah passwd[spasi]nama_user.

# passwd haryani
Changing password for user haryani.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Untuk menghapus user jalankan perintah berikut ini:

  # userdel haryani

atau

  # userdel -r haryani
catatan: menghapus dengan menggunakan opsi -r, akan menghapus secara keseluruhan direktori user tersebut.

Group adalah gabungan dari beberapa user membentuk suatu kelompok. User-user yang tergabung dalam satu group dapat saling berbagi file. Berikut ini contoh penggunaan membuat group.

  • Membuat group dengan nama manager
    # groupadd manager
  • Menentukan Administrator dan member group manager
    # gpasswd -A haryani -M samsul,ubuntu manager
Catatan: opsi -A adalah user administrator adalah “haryani”, dan opsi -M adalah user member, yaitu “samsul”, dan “ubuntu”
  • Memberikan password group manager
    # gpasswd manager
    Changing the password for group manager
    New Password:
    Re-enter new password:
  • Menambah dan menghapus member dari group manager
    # gpasswd -a maarif
    Adding user maarif to group manager
    # gpasswd -d maarif
    Removing user maarif from group manager.
Catatan: opsi -a menambah user baru, dan opsi -d menghapus user.
  • Login pada group manager dengan perintah
  haryani@test1:~$ newgrp manager
  Password:
  • Karena user “haryani” merupakan admin group maka diminta konfirmasi password group sedangkan untuk user member yaitu “samsul”, dan “ubuntu” tidak diminta konfirmasi password group.
haryani@test1:~$ ls -l
total 4
drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share
  • Untuk mengetahui daftar group tertentu jalankan perintah berikut
haryani@test1:~$ groups
manager haryani
  • Keluar dari group manager
  haryani@test1:~$ exit

Perintah untuk menghapus group adalah groupdel[spasi]nama_group.

  # groupdel manager

5. Manajemen Hak Akses File dan Direktori

Ketika sebuah file atau direktori dibuat, maka file atau direktori tersebut kepemilikikannya akan melekat pada suatu user dan group tertentu. Selain itu pada file tersebut akan melekat juga tiga hak akses yang berbeda, yaitu baca (read), tulis (write), dan eksekusi (execute), terhadap pemilik, grup, atau user lain. Hak akses tersebut dapat diubah oleh root atau user yang memilikinya. Hal-hal yang berkaitan dengan hak akses file tersebut merupakan kemampuan dasar dalam administrasi sistem operasi Linux.

Mekanisme kepemilikan dan akses file tersebut sangat penting, karena Linux bersifat multiuser, sehingga harus ada mekanisme untuk mencegah akses-akses ilegal terhadap file.

Secara umum pengaturan hak akses atas file atau direktori mempunyai prinsip sebagai berikut:

  • Setiap file selalu dimiliki oleh seorang yang berhak mengatur hak akses terhadap file tersebut.
  • Hak akses terbagi menjadi 3 bagian: Read, Write, dan Execute.
  • Hak akses dapat diberikan kepada 3 kelompok pemakai, yaitu pemilik file (Owner), grup pemilik file (Group), dan pemakai lainnya (Other).

Hak akses

  • read : r
  • write : w
  • execute : x

Kelompok pemakai

  • User pemilik (Owner) : u
  • Group : g
  • User lain : o

Kemudian tanda (+) untuk menandakan pemberian hak akses, sedangkan tanda (-) untuk menandakan penghapusan hak akses.

Perhatikan perintah berikut ini:

haryani@test1:~$ ls -l
total 4
drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share
-rwxr--r-- 1 haryani manager    0 Aug 24 06:06 test.txt

Berikut ini penjelasannya

-rwxr–r– Merupakan tipe akses
1 jumlah link
haryani user owner file
manager group pemilik file
0 ukuran file
Aug 24 06:06 Tanggal & waktu dibuat
test.txt nama file

Tipe akses terdiri dari 10 digit, yaitu:

Digit Tipe Akses Deskripsi
1 (-) atau (d) Jika digit 1 (-) artinya itu adalah sebuah file, sedangkan jika digit 1 (d) maka itu adalah sebuah direktori.
2 r Artinya bahwa sebuah file atau direktori tersebut bisa dibaca, ditulis, dan dieksekusi oleh user pemilik file (owner) “haryani”
3 w
4 x
5 r Artinya bahwa file atau direktori tersebut hanya bisa dibaca oleh group pemilik file, yaitu “manager”
6 -
7 -
8 r Artinya file atau direktori tersebut hanya dapat dibaca oleh user lain selain “haryani”.
9 -
10 -

Untuk merubah hak akses sebuah file atau direktori hanya bisa dilakukan oleh user root. Contoh berikut menunjukkan agar group (g) dan other (o) bisa menulis (w).

haryani@test1:~$ chmod go+w test.txt 
haryani@test1:~$ ls -l
total 4
drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share
-rwxrw-rw- 1 haryani manager    0 Aug 24 06:06 test.txt

Sedangkan untuk merubah agar user pemilik file (owner) bisa menjalankan eksekusi (x), group (g) hanya bisa membaca ( r ), dan user lain (o) tidak bisa membaca dan menulis dapat dilakukan dengan perintah berikut:

haryani@test1:~$ chmod u+x,g-w,o-rw test.txt 
haryani@test1:~$ ls -l
total 4
drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share
-rwxr----- 1 haryani manager    0 Aug 24 06:06 test.txt

Selain menggunakan kombinasi huruf, hak akses file atau direktori dapat dilakukan dengan kombinasi bilangan numerik, yaitu 0 sampai 7.

Numerik Tipe Akses Deskripsi
4 2 1
0 - - - Tidak bisa Read, Write, Execute
1 - - x Hanya bisa Execute
2 - w - Hanya bisa Write
3 - w x Hanya bisa Write dan Execute
4 r - - Hanya bisa Read
5 r - x Hanya bisa Read dan Execute, tidak bisa Write
6 r w - Hanya bisa Read dan Write, tidak bisa Execute
7 r w x Bisa Read, Write, dan Execute

Untuk merubah kepemilikan file atau direktori baik user maupun grup gunakan perintah chown, kepemilikan file ini terkadang perlu dilakukan dengan alasan keamanan.

root@test1:~# cd /home/haryani
root@test1:/home/haryani# ls -l
total 4
drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share
-rwxr----- 1 haryani manager    0 Aug 24 06:06 test.txt

Merubah owner (pemilik file) “haryani” pada file test.txt, ke user “samsul”.

root@test1:/home/haryani# chown samsul test.txt
root@test1:/home/haryani# ls -l
total 4
drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share
-rwxr----- 1 samsul  manager    0 Aug 24 06:06 test.txt

Merubah group (pemilik file) “manager” pada file test.txt, ke user “samsul”.

root@test1:/home/haryani# chgrp samsul test.txt
root@test1:/home/haryani# ls -l
total 4
drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share
-rwxr----- 1 samsul  samsul     0 Aug 24 06:06 test.txt

Untuk merubah owner dan group pemilik file atau direktori secara rekursif (menyeluruh).

root@test1:/home/haryani# chown -R samsul share/
root@test1:/home/haryani# chgrp -R samsul share/
root@test1:/home/haryani# ls -l
total 4
drwxrwxr-x 2 samsul samsul 4096 Aug 24 05:53 share
-rwxr----- 1 samsul samsul    0 Aug 24 06:06 test.txt

6. Manajemen Proses dan Sinyal

Sama hal nya dengan sistem operasi lainnya, Linux juga melakukan proses inisialisasi sistem ketika proses booting berjalan. Kita dapat melihat banyak sekali yang dijalankan pada saat melakukan booting, hal itu terjadi karena Linux adalah sistem operasi yang multitasking sehingga memungkinkan untuk dapat menjalankan banyak proses. Manajemen proses sangat diperlukan untuk stabilitas, keamanan, realibilitas, dan availibilitas sistem. Setiap proses pada sistem operasi Linux mempunyai identitas yang unik yang disebut dengan Proses ID (PID).

Nomor identitas proses dapat diketahui dengan menggunakan perintah ps dan pgrep, ps merubah informasi nomor identitas proses (PID) ke string aplikasi, sedangkan pgrep merubah informasi string aplikasi ke PID. Informasi identitas proses dapat dilihat dengan perintah berikut ini.

$ pstree -ap
$ ps -aux

Sebuah proses dapat dihentikan apabila mengalami crash atau error pada saat sedang berjalan, untuk menghentikan proses tersebut dapat menggunakan perintah berikut.

# kill no_pid
# kill 1023

7. Manajemen Paket

Sebuah sistem manajemen paket bagi suatu distribusi sistem operasi Linux adalah seperangkat tools untuk mengotomatisasi proses penginstalan, pengkonfigurasian, dan pembuangan suatu paket perangkat lunak dari sistem operasi Linux. Biasanya sistem ini merupakan satu bagian dari sistem operasi yang datang dalam distribusi resmi suatu distro Linux.

Tools sistem manajemen paket ini biasa dikenal dengan paket manajer. Paket manajer di Linux biasanya mempunyai kemampuan memeriksa dan mengatur semua paket di dalam sistem operasi Linux.

APT merupakan sistem manajemen paket (package manager) yang bertugas untuk melakukan pemasangan, pembuangan, dan pengkonfigurasian suatu paket perangkat lunak di distro turuanan debian, termasuk ubuntu.

APT mempermudah proses manajemen paket di Linux dengan mengotomatisasi penerimaan, pengkonfigurasian, pemasangan, dan pembuangan paket perangkat lunak baik yang bertipe binari maupun kode sumber. Pada awalnya APT dibuat sebagai front- end untuk dpkg (Debian Package Managemenet System), untuk bekerja dengan paket debian dalam format .deb, tetapi sekarang telah dimodifikasi agar bekerja juga dengan sistem paket manajer RPM (RedHat Package Manager) melalui apt-rpm.

Seperti yang telah disebutkan sebelumnya, bahwa ubuntu dan turunan debian Linux menggunakan format .deb pada paket-paketnya, berkas-berkas dalam format .deb dikenal sebagai paket debian. Format .deb sebetulnya merupakan sebuah file arsip, yang dapat diekstrak menggunakan tools archiver biasa, semisal GNU Archiver, tar.

Untuk bekerja dengan berkas .deb ini, pada ubuntu Linux menggunakan dpkg, sebuah tools manajemen paket yang bisa digunakan untuk mengakses berkas .deb secara langsung, memasang berkas deb, dan membuang paket perangkat lunak. Dpkg merupakan tools dasar dalam manajemen paket berbasis debian. Perintah dpkg ini akan banyak digunakan ketika akan melakukan pemasangan paket perangkat lunak secara offline, dimana paket telah di download secara manual dari internet.

Beberapa perintah tools dpkg yang umum digunakan:

  • Memasang paket perangkat lunak
    $ sudo dpkg -i namapaket.deb
  • Membuang paket perangkat lunak
    • Membuang paket perangkat lunak tanpa membuang berkas konfigurasi.
      $ sudo dpkg -r namapaket
    • Membuang paket perangkat lunak sekaligus membuang berkas konfigrasi.
      $ sudo dpkg --purge namapaket
  • Melihat informasi paket
    • Melihat informasi daftar paket perangkat lunak yang telah terpasang.
      $ dpkg -l
    • Melihat informasi daftar paket perangkat lunak yang telah terpasang dan memasukkan daftar tersebut ke dalam berkas daftarpaket.txt.
      $ dpkg -l > daftarpaket.txt
    • Melihat informasi berkas apa saja yang masuk ke dalam paket perangkat lunak tertentu.
      $ dpkg -L namapaket

Namun dibalik kemudahan yang dimiliki dpkg, terdapat juga kekurangan fitur diantaranya yang melatar belakangi dikembangkannya APT yakni:

  1. dpkg tidak menangani dependensi (ketergantungan) suatu paket akan paket lain secara otomatis, sehingga jika memasang paket perangkat lunak dan paket tersebut memerlukan paket lain untuk berfungsi, maka pengguna harus secara manual memasang paket perangkat lunak yang dibutuhkan tersebut.
  2. dpkg tidak dapat mengambil paket perangkat lunak dari lokasi lain di network, seperti yang APT lakukan. Jadi saat bekerja dengan dpkg, paket-paket tersebut sudah di download ke dalam sistem lokal.

Karena keterbatasan itulah, APT diciptakan. Sistem APT mengembangkan kemampuan dari dpkg sehingga mampu menangani masalah ketergantungan antar paket (dependenciy). APT juga mampu menjalankan tugas memasang paket perangkat lunak dengan mengambil secara online suatu paket dari gudang paket, yang disebut dengan repository.

APT bekerja dengan cara tetap menjaga daftar paket apa saja yang tersedia dalam sistem dengan membaca sebuah daftar paket yang dapat di download dari sebuah repository. Sumber-sumber repository dimana APT dapat mengambil paket-paketnya dikonfigurasi melalui sebuah berkas di /etc/apt/sources.list.

Sistem APT bukanlah sebuah tools tunggal, APT mempunyai opsi-opsi perintah yang bisa digunakan untuk manajemen paket, berikut fungsi-fungsi APT yang sering digunakan, diantaranya:

  1. apt-mark
    Fungsi APT ini digunakan secara internal oleh APT, untuk memberi tanda dan menghilangkan tanda suatu paket perangkat lunak yang terpasang secara otomatis.
  2. apt-cdrom
    Fungsi APT ini digunakan untuk menambah CD/DVD repository kedalam berkas sources.list.
  3. apt-cache
    Fungsi ini berguna untuk berbagai keperluan yang berkaitan dengan cache database APT, seperti pencarian paket, status sebuah paket, informasi tentang paket, dan lain sebagainya.
  4. apt-config
    Fungsi internal yang digunakan oleh berbagai bagian sistem APT, untuk menjamin konsistensi pengkonfigurasian.
  5. apt-get
    Fungsi ini merupakan fungsi command line untuk berurusan dengan paket, dan ini yang paling umum digunakan pengguna untuk keperluan memasang dan membuang paket.
  6. apt-key
    Fungsi ini digunakan untuk mengatur daftar key yang digunakan APT untuk mengautentifikasikan paket. Paket yang telah diautentifikasikan menggunakan key tersebut dapat dinyatakan trusted (dipercaya), dan berasal dari sumber yang terpercaya.

8. Penjadwalan Otomatis

Penjadwalan otomatis digunakan untuk mengatur pekerjaan secara terjadwal, salah satu aplikasi penjadwalan otomatis adalah crond (cron daemon) atau sering disebut dengan crontab. Dengan aplikasi ini pengguna dimungkinkan untuk melakukan eksekusi aplikasi, kode, atau service dengan waktu yang telah ditentukan. Untuk konfigurasi crond ditangani oleh berkas /etc/crontab dan di beberapa direktori, seperti /etc/cron.d, /etc/cron.hour, /etc/cron.daily. /etc/cron.monthly, dan /etc/cron.weekly.

Penulisan penjadwalan dengan menggunakan crond menggunakan parameter tertentu yang terdiri atas waktu (detik, menit, jam, hari, minggu, bulan) dan perintah. Format penulisan crontab.

Contoh:

  1. Seorang administrator ingin menjalankan /sbin/reboot, tiap tanggal 1 dibulan Januari dan juga setiap hari senin minggu pertama dibulan Januari, jam 14:30 wib.
    Jawab:
    $sudo crontab -e
    30 14 1 1 1 /sbin/reboot
    $sudo /etc/init.d/cron start
  2. Seorang administrator ingin melakukan backup data secara otomatis dengan nama db_penting.tar.gz ke dalam direktori /home/data/backup, pada setiap tanggal 1 hari senin minggu pertama dibulan Juni dan Desember, jam 17:30 wib.
    Jawab:
    $sudo crontab -e
    30 17 1 6,12 1 mv db_penting.tar.gz /home/data/backup
    $ sudo /etc/init.d/cron start

9. DNS Server

Sistem Penamaan Domain (bahasa Inggris: (Domain Name System; DNS) adalah sebuah sistem yang menyimpan informasi tentang nama host ataupun nama domain dalam bentuk basis data tersebar (distributed database) di dalam jaringan komputer, misalkan: Internet. DNS menyediakan alamat IP untuk setiap nama host dan mendata setiap server transmisi surat (mail exchange server) yang menerima surel (email) untuk setiap domain. Menurut browser Google Chrome, DNS adalah layanan jaringan yang menerjemahkan nama situs web menjadi alamat internet.

DNS menyediakan pelayanan yang cukup penting untuk Internet, ketika perangkat keras komputer dan jaringan bekerja dengan alamat IP untuk mengerjakan tugas seperti pengalamatan dan penjaluran (routing), manusia pada umumnya lebih memilih untuk menggunakan nama host dan nama domain, contohnya adalah penunjukan sumber universal (URL) dan alamat surel. Analogi yang umum digunakan untuk menjelaskan fungsinya adalah DNS bisa dianggap seperti buku telepon internet di mana saat pengguna mengetikkan www.blankonlinux.or.id di peramban web maka pengguna akan diarahkan ke alamat IP 64.140.165.106 (IPv4).

Instalasi dari sebuah paket biasanya merupakan cara termudah. Dalam Ubuntu, dapat di install dengan menggunakan perintah :

  $ sudo apt-get install bind9

Dalam praktek kali ini, asumsikan alamat IP yang akan digunakan adalah 192.168.7.7 dan domain yang akan digunakan adalah sekolahku.sch.id. Silahkan sesuaikan konfigurasinya jika alamat IP dan nama domain yang digunakan berbeda.

Nah, setelah tadi kita menginstall paket bind9 langkah selanjutnya adalah mengonfigurasinya. Semua berkas konfigurasi bind9 ada di direktori /etc/bind. Ketikkan perintah berikut untuk masuk ke direktori tersebut :

$ cd /etc/bind

Pertama kita akan konfigurasi adalah berkas named.conf.local dalam direktori tadi

$ sudo nano named.conf.local

Ganti nano dengan teks editor favorit Anda, jika diperlukan. Tambahkan konfigurasinya sebagai berikut :

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "sekolahku.sch.id" {
type master;
file "/etc/bind/db.sekolahku";
};

zone "7.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};

Pada zone yang kedua, angka 7.168.192 merupakan tiga blok pertama alamat IP yang dibalik urutannya.

Jangan lupa simpan konfigurasi tersebut dengan menekan tombol Ctrl+x lalu tekan y, selanjutnya Enter.

Lalu buat/salin berkas db.local ke db.sekolahku1) dan berkas db.127 ke db.1922). Hal tersebut dapat dilakukan dengan perintah berikut :

$ sudo cp db.local db.sekolahku
$ sudo cp db.127 db.192

Gunakan perintah ls untuk melihat isi folder, dan akan terlihat file yang baru dibuat tadi sebagai berikut :

samsul@maarif:/etc/bind$ ls
bind.keys  db.192    db.local      named.conf                named.conf.options
db.0       db.255    db.root       named.conf.default-zones  rndc.key
db.127     db.empty  db.sekolahku  named.conf.local          zones.rfc1918
samsul@maarif:/etc/bind$ 

Selanjutnya kita akan mengonfigurasi berkas db.sekolahku dan db.192.

 $ sudo nano db.sekolahku

Sunting berkas db.sekolahku sehingga menjadi seperti :

;
; BIND data file for local loopback interface
;
$TTL	604800
@	IN	SOA	sekolahku.sch.id. root.sekolahku.sch.id. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	ns.sekolahku.sch.id.
@	IN	A	192.168.7.7
@	IN	MX	10	mail.sekolahku.sch.id.
ns	IN	A	192.168.7.7
www	IN	A	192.168.7.7
mail	IN	A	192.168.7.7
ftp	IN	A	192.168.7.7

simpan dengan Ctrl+x lalu tekan y, selanjutnya Enter. Dan sunting berkas db.192 :

$ sudo nano db.192

sehingga seperti sebagai berikut :

;
; BIND reverse data file for local loopback interface
;
$TTL	604800
@	IN	SOA	sekolahku.sch.id. root.sekolahku.sch.id. (
			      1		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	ns.sekolahku.sch.id.
7	IN	PTR	ns.sekolahku.sch.id.
7	IN	PTR	www.sekolahku.sch.id.
7	IN	PTR	mail.sekolahku.sch.id.
7	IN	PTR	ftp.sekolahku.sch.id.

simpan dengan Ctrl+x lalu tekan y, selanjutnya Enter.

Angka 7 pada konfigurasi di atas 7 IN PTR ns.blabalaba adalah blok terakhir alamat IP yang kita gunakan. Jadi silahkan sesuaikan jika alamat IP yang digunakan berbeda.

  • Forwarders

Konfigurasi berikutnya pada berkas named.conf.options bersifat pilihan saja, tidak wajib. Tapi sangat disarankan untuk diaktifkan apalagi jika server kita juga difungsikan sebagai gateway.

$ sudo nano named.conf.options

Dalam hal ini misalnya kita akan memforward (meneruskan) permintaan ke DNS milik google, maka konfigurasinya adalah sebagai berikut :

options {
	directory "/var/cache/bind";

	// If there is a firewall between you and nameservers you want
	// to talk to, you may need to fix the firewall to allow multiple
	// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

	// If your ISP provided one or more IP addresses for stable 
	// nameservers, you probably want to use them as forwarders.  
	// Uncomment the following block, and insert the addresses replacing 
	// the all-0's placeholder.

	forwarders {
	 	8.8.8.8;
	};

	//========================================================================
	// If BIND logs error messages about the root key being expired,
	// you will need to update your keys.  See https://www.isc.org/bind-keys
	//========================================================================
	dnssec-validation auto;

	auth-nxdomain no;    # conform to RFC1035
	listen-on-v6 { any; };
};

simpan dengan Ctrl+x lalu tekan y, selanjutnya Enter.

  • Restart BIND9

Sampai di sini, kita telah selesai mengonfigurasi BIND9 sebagai DNS server kita. Langkah berikutnya adalah dengan merestart layanan dns server tersebut dengan perintah berikut :

$ sudo service bind9 restart

atau

$ sudo /etc/init.d/bind9 restart

Jika tidak ada pesan error, artinya konfigurasi DNS server yang kita buat telah berhasil.

  • Pengujian

Namun untuk memastikan apakah sudah benar-benar berhasil atau belum, kita perlu melakukan pengujian. Beberapa alat yang dapat kita gunakan untuk melakukan pengujian adalah nslookup, dig, dan ping. Berikut adalah contoh-contoh hasil pengujiannya :

samsul@maarif:/etc/bind$ nslookup sekolahku.sch.id
Server:		127.0.0.1
Address:	127.0.0.1#53

Name:	sekolahku.sch.id
Address: 192.168.7.7

samsul@maarif:/etc/bind$ nslookup 192.168.7.7
Server:		127.0.0.1
Address:	127.0.0.1#53

7.7.168.192.in-addr.arpa	name = mail.sekolahku.sch.id.
7.7.168.192.in-addr.arpa	name = ns.sekolahku.sch.id.
7.7.168.192.in-addr.arpa	name = www.sekolahku.sch.id.
7.7.168.192.in-addr.arpa	name = ftp.sekolahku.sch.id.

samsul@maarif:/etc/bind$ ping sekolahku.sch.id -c 4
PING sekolahku.sch.id (192.168.7.7) 56(84) bytes of data.
64 bytes from mail.sekolahku.sch.id (192.168.7.7): icmp_seq=1 ttl=64 time=0.076 ms
64 bytes from mail.sekolahku.sch.id (192.168.7.7): icmp_seq=2 ttl=64 time=0.133 ms
64 bytes from mail.sekolahku.sch.id (192.168.7.7): icmp_seq=3 ttl=64 time=0.114 ms
64 bytes from mail.sekolahku.sch.id (192.168.7.7): icmp_seq=4 ttl=64 time=0.126 ms

--- sekolahku.sam ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.076/0.112/0.133/0.023 ms
samsul@maarif:/etc/bind$ 

10. FTP Server

File Transfer Protocol (FTP) adalah suatu protokol yang berfungsi untuk tukar-menukar file dalam suatu network yang menggunakan TCP koneksi bukan UDP. Dua hal yang penting dalam FTP adalah FTP Server dan FTP Client. FTP server adalah suatu server yang menjalankan software yang berfungsi untuk memberikan layanan tukar menukar file dimana server tersebut selalu siap memberikan layanan FTP apabila mendapat permintaan (request) dari FTP client.

Instalasi FTP Server cukup mudah,

  $ sudo apt-get -y install proftpd

Ubah konfigurasi proftpd dengan perintah berikut :

  $ sudo nano /etc/proftpd/proftpd.conf

Pada berkas konfigurasi tersebut, cari dan sesuaikan konfigurasi sebagaimana berikut ini :

# baris 11: nonaktifkan jika tidak digunakan
UseIPv6 off

# baris 15: ganti dengan nama host Anda
ServerName "ftp.sekolahku.sch.id"

# baris 34: hapus komentar (sesuaikan direktori untuk chroot)
DefaultRoot ~ 

Simbol “~” pada DefaultRoot artinya setiap user yang mengakses dengan user-name dan password loginnya akan diarahkan ke home direktori masing-masing.

Jika ingin membatasi (melarang) pengguna untuk mengakses FTP Server, tambahkan nama pengguna tersebut pada file /etc/ftpusers (satu nama akun per baris).

  $ sudo nano /etc/ftpusers

Setelah disimpan, restart ftp server :

  $ sudo /etc/init.d/proftpd restart

atau dengan perintah

  $ sudo systemctl restart proftpd

Lalu coba login dengan akun user Linux yang sudah dibuat sebelumnya. Berikut ini contoh mengakses ftp server melalui terminal Linux dengan perintah ftp :

samsul@studio:~$ ftp
ftp> open 192.168.7.7
Connected to 192.168.7.7.
220 ProFTPD 1.3.5a Server (Debian) [192.168.7.7]
Name (192.168.7.7:samsul): haryani
331 Password required for haryani
Password:
230 User haryani logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful
150 Opening ASCII mode data connection for file list
drwxrwxr-x   2 1001     1001         4096 Aug 24 05:53 share
-rwxr-----   1 1001     1001            0 Aug 24 06:06 test.txt
226 Transfer complete
ftp> 

11. Apache Web Server

Web server adalah sebuah software yang memberikan layanan berbasis data dan berfungsi menerima permintaan dari HTTP atau HTTPS pada klien yang dikenal dan biasanya kita kenal dengan nama web browser (Mozilla Firefox, Google Chrome) dan untuk mengirimkan kembali yang hasilnya dalam bentuk beberapa halaman web dan pada umumnya akan berbentuk dokumen HTML.

Install Apache Web Server dari repository

  $ sudo apt-get update
  $ sudo apt-get install apache2 

Selesai install, kita bisa mencobanya dengan mengakses alamat ip server kita melalui browser.

Untuk mengonfigurasi virtualhost, kita perlu menentukan nama domain (nama host) yang akan kita gunakan. Misalnya sekolahku.sch.id. Dalam hal ini, alamat Ip yang digunakan adalah 192.168.7.7.

Oiya, kita juga perlu menentukan lokasi folder tempat kita akan menyimpan file aplikasi web kita. Misalnya lokasinya di /var/www/html/sekolahku/

maka langkah konfigurasinya sebagai berikut :

Buat folder yang akan digunakan sebagai DocumentRoot :

  $ sudo mkdir -p /var/www/html/sekolahku/

Ubah hak akses direktori tersebut :

  $ sudo chown -Rfv www-data.www-data /var/www/html/sekolahku/

Buat sebuah berkas index.html

  $ sudo nano /var/www/html/sekolahku/index.html

lalu isi file tersebut (diketik) dengan :

index.html
<html>
<head>
	<title>Belajar Membuat VirtualHost</title>
</head>
 
<body>
	<h1>Belajar Membuat VirtualHost</h1>
	<p>Paragraf pertama</p>
	<p>paragraf kedua</p>
</body>

Selanjutnya kita konfigurasi Webservernya. Pindah direktori kerja :

  $ cd /etc/apache2/sites-available/

Salin berkas konfigurasi default ke berkas baru,

  $ sudo cp 000-default.conf sekolahku.conf

Edit dengan teks editor nano,

  $ sudo nano sekolahku.conf

Ubah hingga sebagai berikut :

<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	ServerName sekolahku.sch.id
	ServerAlias www.sekolahku.sch.id
 
	ServerAdmin hay@samsul.web.id
	DocumentRoot /var/www/html/sekolahku/
 
	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn
 
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
 
	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
 
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Simpan dengan menekan Ctrl+X, lalu Y, kemudian Enter. Aktifkan kofigurasi tersebut dengan perintah :

  $ sudo a2ensite sekolahku

Outputnya sebagai berikut :

Enabling site sekolahku.
To activate the new configuration, you need to run:
  service apache2 reload

Berdasarkan keluaran tersebut, maka kita perlu menjalankan perintah :

  $ sudo service apache2 reload

Sampai tahap ini, konfigurasi web server beserta VirtualHost-nya sudah selesai, namun supaya nama domain dapat diakses dari client kita memerlukan DNS Server.

Buka peramban web (misalnya Mozilla Firefox, atau Google Chrome), dan ketikkan alamat http://sekolahku.sch.id. Jika berhasil, maka tampilannya akan sebagai berikut :

~~DISQUS~~


1)
CATATAN: sesuaikan nama berkas dengan konfigurasi yang ada di named.conf.local
2)
Idem
  • linux/Lokakarya.BlankOn.Linux.Surabaya.2-9-2017
  • Terakhir diubah: 3 tahun yang lalu
  • oleh 127.0.0.1