Pengguna sistem operasi linux seharusnya (dan harus) pernah melihat string aneh berbentuk -rw-rw-r--
yang muncul saat kita menjalankan perintah ls -l
. Kalau kamu tidak paham maksud dari string tersebut masih bisalah dimaklumi tetapi kalau tidak pernah melihatnya sama sekali berarti harus dipertanyakan statusnya sebagai linuxer nih ?.
Oke Mas saya ingin paham itu string buat apaan?
String tersebut digunakan sebagai informasi hak akses apa yang diberikan kepada 3 buah golongan. Golongan tersebut adalah owner, group, dan other.
Owner
artinya sudah jelas yaitu si pemilik file yang bersangkutan. Group
adalah grup yang di-assign ke file tersebut. Dan terakhir other
, siapa saja selain yang kedua tadi.
Bagaimana cara membacanya?
Karakter pertama menandakan tipe dari benda yang bersangkutan.
-
menandakan benda tersebut adalah sebuah file dan jika berupa d
maka ia adalah folder atau direktori.
1 2 |
-rw-rw-r-- drwxrwxr-x |
3 karakter setelahnya adalah hak akses yang diberikan kepada owner
, 3 karakter selanjutnya lagi hak akses untuk group
dan 3 terakhir untuk other
. 3 karakter ini selalu berurutan r
, w
, x
.
Penjelasan dari masing-masing 3 karakter bisa disimak sebagai berikut
– r
adalah read
– w
adalah write
– x
adalah execute
– -
adalah tidak memiliki akses untuk posisi yang bersangkutan
Dengan begitu kita bisa membaca sebuah permission di bawah ini sebagai berikut :
Sebuah file yang pemiliknya punya akses untuk read dan write (tidak untuk execute), grup punya akses untuk read dan write (tidak untuk execute) dan sisanya hanya bisa read.
1 |
-rw-rw-r-- |
Oh iya bagaimana kita tahu siapa pemilik dan grup yang di-assign ke file yang bersangkutan?. Cek gambar di bawah ini pada bagian yang saya kotaki merah. Cek juga pada warna lain yang menandai permission untuk ke-3 golongan.
Ruby in Action
Apa yang saya jelaskan sedikit soal permission pada linux di atas hanyalah sebuah intro yang saya gunakan supaya pembaca tulisan ini bisa paham dengan apa yang sebenarnya ingin saya sampaikan yaitu membongkar linux permission di Ruby.
Karena kita semua sudah paham cara membacanya maka sekarang kita bisa beralih ke Ruby.
Hak akses ini sifatnya tidak final, kita bisa mengubahnya. Bagaimana cara mengubahnya?
Untuk lebih detail soal permission di Linux ini akan saya bahas pada tulisan selanjutnya. Tulisan ini hanya saya tujukan sebagai pengenalan awal dan juga memanfaatkan Ruby untuk bekerja dengan permission.
Cara yang sering digunakan adalah menggunakan perintah
1 |
chmod <bilangan octal dari hak akses> |
Bilangan octal ini adalah bilangan basis 8 yang didapat dari mengubah bilangan biner (basis 2) hak akses ke basis 8.
Hayo ngaku sekarang siapa yang pernah melakukan chmod 777
tanpa tahu apa maksudnya? ?
777
maksudnya apa ya?
Seperti saya bilang, bilangan octal yang digunakan pada perintah chmod
didapat dari mengubah representasi biner hak akses ke octal. Artinya kita harus tahu bagaimana mengubah bentuk hak akses dari string ke biner. Bagaimana caranya?
Tinggal ganti dengan antara 1 atau 0. 0 hanya dipakai kalau tidak memiliki hak akses, artinya -
.
1 2 3 4 5 |
-rw-rw-r-- -110110100 drwxrwxr-x d111111101 |
Clear?
Sekarang kalau sudah tahu binernya berarti kita bisa tahu octalnya. Dulu jaman kuliah diajari bagaimana cara melakukan konversinya tetapi sekarang campuran lupa dan malas hahaa.
Oleh karena itu, kita gunakan Ruby untuk membantu.
Mari kita pakai contoh ini untuk memahaminya
1 |
-rw-rw-r-- |
Biner dari permission di atas adalah
1 |
110110100 |
Pakai Ruby dong buat mengubahnya ke octal
1 2 3 |
0b110110100.to_s(8) #=> 664 |
Nah akhirnya muncul juga tuh angkanya.
Sekarang dibalik, 777
itu maksudnya apa?
1 2 3 4 |
0777.to_s(2) #=> 111111111 # di hak akses berarti : rwxrwxrwx |
Wow, ternyata 777
itu kita ngasih full akses ke siapa saja ?
Cara seperti ini berguna jika kita ingin mengubah hak akses menggunakan octal tetapi kita terlalu malas untuk merepresentasikan hak askes ke sistem octal secara manual.
Karena sistem biner lebih mudah bagi kita kenapa tidak kita gunakan biner saja terus diubah ke octal dengan bantuan Ruby?.
1 2 3 4 5 |
Hak akses mula-mula -rw-rw-r-- Ingin kita ubah menjadi -rw-r--r-- |
Biner yang baru adalah 110100100
. Berarti octalnya adalah
1 2 3 |
0b110100100.to_s(8) #=> 644 |
Dari situ bisa dong tinggal kita lakukan chmod 644
.
Semoga membantu untuk sedikit memahami permission yang ada di linux.