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.
3.a. Format Instruksi/Perintah Linux
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 |
3.b. Manual
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 |
3.c. Rangkuman Perintah Praktis
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 |
3.d. Perintah sudo dan su
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.
4.a. Kelompok Users dan Groups
Pada sistem Linux, user dibedakan menjadi 3 kelompok, yaitu:
- 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
- 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
- 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
4.b. Administrasi User dan Group
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.
4.c. Membuat User
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.
4.d. Menghapus User
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.
4.e. Membuat Group
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
4.f. Menghapus Group
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 |
5.a. Mengubah Kepemilikan File
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).
6.a. Identitas proses
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
6.b. Menghentikan proses
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.
7.a. APT (Advanced Packaging Tools)
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.
7.b. Bekerja dengan berkas binari .deb
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:
- 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.
- 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:
- apt-mark
Fungsi APT ini digunakan secara internal oleh APT, untuk memberi tanda dan menghilangkan tanda suatu paket perangkat lunak yang terpasang secara otomatis. - apt-cdrom
Fungsi APT ini digunakan untuk menambah CD/DVD repository kedalam berkas sources.list. - 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. - apt-config
Fungsi internal yang digunakan oleh berbagai bagian sistem APT, untuk menjamin konsistensi pengkonfigurasian. - 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. - 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:
- 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
- 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
9.a. Apa itu 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).
9.b. Instalasi BIND
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.
9.c. Konfigurasi BIND
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.sekolahku
1) dan berkas db.127
ke db.192
2). 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
10.a. Apa itu 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.
10.b. Instalasi FTP Server
Instalasi FTP Server cukup mudah,
$ sudo apt-get -y install proftpd
10.c. Konfigurasi FTP Server
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
11.a. Apa itu 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.
11.b. Instalasi Apache2
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.
11.c. Konfigurasi VirtualHost
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~~