Selasa, 31 Desember 2013

Sistem File di GNU/Linux

Bismillahirrahmanirrahiim..

Sebenarnya ini merupakan posting untuk melengkapi posting saya sebelumnya dengan sedikit tambahan dan perubahan, pemahaman dasar tentang sistem file pada Linux Operating System terutama pada distro Debian dan turunannya ini lah tema yang akan kita ambil. Baiklah Let's begin..

Sistem file di Linux berbeda dengan sistem file pada operating system lain, misal saja pada Ms. Windows. Secara sederhana pada Linux semua dianggap file, jika sesuatu itu bukan file maka itu adalah proses. Linux tidak membedakan antara file dan direktori karena pada dasarnya direktori adalah file yang berisi nama-nama file yang lainnya. Meskipun semua dianggap file namun terdapat pengecualian.

  • Directories - file yang berisi daftar file lainnya
  • Special files - Mekanisme yang digunakan input dan output. Kebanyakan berada pada folder /dev.
  • Link - file penghubung, menyebabkan file nampak pada beberapa bagian dari system tree.
  • Sockets - tipe file khusus, mirip dengan soket pada TCP/IP, menyediakan jaringan antar proses dilindungi oleh kontrol akses file sistem.
  • Named pipes - bertindak kurang lebih seperti socket dan membentuk sebuah jalan untuk proses berkomunikasi satu sama lainnya tanpa menggunakan tanpa menggunakan socket jaringan semantik.
Sedangkan file text dan file executable dinamakan regular file. Tipe file dapat diketahui dengan perintah ls -l [direktoriName]. Berikut daftar tipe file

SymbolMeaning
-Regular file
dDirectory
lLink
cSpecial file
sSocket
pNamed pipe
bBlock device


Pemilik, Hak Akses, & Group


Pada GNU/Linux user dapat memproteksi file-filenya dan user mana yang dapat membaca, mengubah, dan menjalankan file tersebut. terdapat 3 macam hak akses dari sebuah file.

  • Read - pengguna hanya dapat membaca file.
  • Write - pengguna dapat merubah file.
  • Execute - pengguna dapat menjalankan file.
Hak akses ini kemudian dibungkus kedalam mode akses untuk menangani user yang lebih banyak. User-user ini dikelompokkan menjadi tiga mode:
  • Owner - hak akses untuk pemilik file.
  • Group - Hak akses pada group.
  • Other - Untuk user lain selain owner dan user dalam group.
ubuntu@ubuntu:~$ ls -l
total 60
drwxr-xr-x  2
ubuntu ubuntu 4096 Dec 22 06:42 Desktop
drwxr-xr-x 16 ubuntu ubuntu 4096 Dec 23 11:37 Documents
drwxr-xr-x  9 ubuntu ubuntu 4096 Dec 25 09:04 Downloads
-rw-r--r--  1 ubuntu ubuntu 8445 Dec 22 06:38 examples.desktop
-rwxrwxrwx  1 root   root    447 Dec 25 22:30 infosistem.sh
-rw-rw-r--  1 ubuntu ubuntu  304 Dec 23 01:21 missfont.log





Nilai
Arti
0
---
1
--x
2
-w-
3
-wx
4
r--
5
r-x
6
rw-
7
rwx

Selanjutnya untuk mengubah hak akses ini kita dapat menggunakan perintah chmod. untuk parameternya bisa menggunakan bilangan desimal atau huruf. Sebaiknya kita langsung menuju TKP agar lebih paham.



Pertama-tama kita buat dulu direktori baru pada home dir, saya beri nama "kotak".

ubuntu@ubuntu:~$ mkdir ~/kotak
ubuntu@ubuntu:~$ cd ~/kotak #perintah untuk pindah direktori
ubuntu@ubuntu:~/kotak$

dan selanjutnya, buat sebuah file dan folder.

ubuntu@ubuntu:~/kotak$ touch isi.txt #membuat file isi.txt
ubuntu@ubuntu:~/kotak$ mkdir kotak2  #membuat direktori kotak2
ubuntu@ubuntu:~/kotak$ ls -l
total 4
-rw-rw-r-- 1 ubuntu ubuntu    0 Dec 29 09:51 isi.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 09:52 kotak2

Selanjutnya kita ubah hak akses dengan parameter angka dulu. Kita ubah file isi.txt agar hanya bisa diakses oleh owner saja.

ubuntu@ubuntu:~/kotak$ chmod 700 isi.txt
ubuntu@ubuntu:~/kotak$ ls -l
total 4
-rwx------ 1 ubuntu ubuntu    0 Dec 29 09:51 isi.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 09:52 kotak2

Dapat kita lihat atribut file isi.txt berubah (text dengan warna merah). Sedangkan untuk mengubah hak akses direktori dan file yang ada di dalamnya perlu ditambahkan opsi -R (recursive).

ubuntu@ubuntu:~/kotak$ chmod -R 741 kotak2
ubuntu@ubuntu:~/kotak$ ls -l
total 4
-rwx------ 1 ubuntu ubuntu    0 Dec 29 09:51 isi.txt
drwxr----x 2 ubuntu ubuntu 4096 Dec 29 09:52 kotak2

Perubahan juga bisa dilakukan dengan menggunakan huruf dengan aturan sebagai berikut.
u - user, pemilik file atau direktori.
g - group, user lain dalam satu group yang sama.
o - other, user selain pemilik dan di luar grup yang sama dengan owner.
a - all, seluruh user ekuivalen dengan ugo.

Operator
(+) Menambah hak akses
( - ) Membuang hak akses
(=) Equal

Berikutnya kita praktikkan, kita ubah file isi.txt dengan membuang hak akses eksekusi untuk user/owner.

ubuntu@ubuntu:~/kotak$ chmod u-x isi.txt
ubuntu@ubuntu:~/kotak$ ls -l isi.txt
-rw------- 1 ubuntu ubuntu 0 Dec 29 09:51 isi.txt

Sekarang untuk folder kita ubah hak akses group ke full akses rwx, dan user other hanya read.

ubuntu@ubuntu:~/kotak$ chmod -R g=rwx,o=r kotak2
ubuntu@ubuntu:~/kotak$ ls -l
total 4
-rw------- 1 ubuntu ubuntu    0 Dec 29 09:51 isi.txt
drwxrwxr-- 2 ubuntu ubuntu 4096 Dec 29 09:52 kotak2


Memahami Struktur Direktori Pada Linux OS

Sistem direktori pada Linux tersusun secara hirarki. Direktori teratas adalah direktori root (/). Dibawahnya terdapat subdirektori-subdirektori utama dengan fungsinya masing-masing. Subdirektori-subdirektori tersebut antara lain:

ubuntu@ubuntu:~$ ls -l /
total 100
drwxr-xr-x   2 root root  4096 Dec 22 05:21 bin
drwxr-xr-x   4 root root  4096 Dec 24 18:12 boot
drwxr-xr-x  18 root root  4380 Dec 29 21:26 dev
drwxr-xr-x 150 root root 12288 Dec 29 21:16 etc
drwxr-xr-x   3 root root  4096 Dec 22 06:38 home
drwxr-xr-x  21 root root  4096 Dec 24 18:11 lib
drwxr-xr-x   2 root root  4096 Dec 29 21:16 media
drwxr-xr-x   2 root root  4096 Apr 19  2012 mnt
drwxr-xr-x   2 root root  4096 Aug 21 00:56 opt
dr-xr-xr-x 206 root root     0 Dec 30  2013 proc
drwx------   9 root root  4096 Dec 27 10:09 root
drwxr-xr-x   2 root root  4096 Dec 24 18:11 sbin
drwxr-xr-x   2 root root  4096 Aug 21 00:56 srv
drwxrwxrwt  13 root root  4096 Dec 29 22:06 tmp
drwxr-xr-x  11 root root  4096 Dec 22 06:53 usr
drwxr-xr-x  14 root root  4096 Dec 29 10:20 var

Selanjutnya kita langsung saja membahas Struktur direktori pada GNU/Linux.

/ - Root
  • Direktori ini membawahi seluruh direktori dan file.
  • Secara default hanya user root yang bisa merubah isi pada direktori ini.
/usr - User Program
  • Berisi file biner, pustaka, dokumentasi dan kode sumber program level kedua.
  • /usr/bin berisi file biner untuk program user. Jika file biner tidak ditemukan pada folder /bin. Maka pada folder ini lah kita seharusnya mencarinya.
  • /usr/sbin file biner atau program untuk seorang sistem administrator. Folder ini adalah rujukan kedua setelah file binary tidak ada pada folder /sbin.
  • /usr/local berisi program user yang diinstall dari kode sumber atau source code.
/bin - User Binaries 
  • Berisi file binary/program yang bisa digunakan oleh seluruh user. Misal ls, ping, dsb.
/sbin - System Binaries
  • Berisi file biner hanya saja penggunaannya untuk admin sistem guna pemeliharaan.
  • Contoh programnya ifconfig, iptables, dll.
/dev - Device Files
  • Berisi special files, yaitu file-file yang menangani hardware/perangkat keras.
/etc - Configuration Files
  • Berisi file-file konfigurasi dari seluruh program pada sistem operasi.
/proc - Process Information
  • Berisi informasi tentang proses sistem sperti RAM, CPU, dll.
  • /proc/[PID], berisi proses dengan PID tertentu.
/var - Variable Files
  • Berisi file sistem log (/var/log), email (/var/mail), antrian print(/var/spool), file lock (/var/lock), paket file dan database (/var/lib). Merupakan direktori dikhususkan untuk data/file yang berubah secara terus menrus.
/home - Home Directories
  • Direktori penyimpanan pribadi untuk masing-masing user.
/boot - Boot Loader Files
  • Berisi file-file yang diperlukan untuk startup. Termasuk kernel Linux, RAM disk image dan file konfigurasi bootloader seperti GRUB dan LILO.
/mnt - Mount Directory
  • Sebagai mount point, tetapi penggunaannya khusus untuk perangkat yang termount sementara seperti network file system.
/media - Removable Media Devices
  • Mount point untuk perangkat penyimpanan elsternal, seperti flashdisk, dan CD.
/srv - Service Data
  • Bisa berisi direktori data dari suatu layanan/service seperti HTTP (/srv/www) atau FTP.
/lib - System Libraries
  • Beriisi dynamic library yang sangat penting dan modul-modul kernel.
/opt - Optional Application
  • Digunakan sebagai tempat aplikasi tambahan yang tidak didukung oleh repository, misal LAMPP, Adobe Reader, dsb.
/tmp - Temporary Files
  • Tempat temporary file dari aplikasi yang ada.
/root - Root User's Home Directories
  • Direktori home untuk user root. 
 

2 komentar:

  1. Bismillahirrahmanirrahim.

    Saya senang jika ada tulisan yang diawali dengan basmalah. Dengan aplikasi apa akang membuat ilustrasi di atas? Apakah tidak dibuat versi PDF juga, Kang?

    BalasHapus
  2. Saya menggunakan aplikasi DIA kang untuk membuat ilustrasinya :-). Apa tidak terlalu singkat ya Kang Ade kalau misalnya saya buat versi PDF?

    BalasHapus