Penjelasan mengenai UNIX file permission


Salam Devilzc0de,
Berhubung masih banyak yang masih belum mengerti tentang hak akses pada Unix, ane mau share sedikit mengenai UNIX like file permission. (Linux, BSD, Macintosh, etc.)
Sebenernya ni tulisan udah lama, tp baru sekarang ane share dimari. maling Semoga kaga repost karena ane tadi sempet cari dan belom ada thread khusus yg membahas mengenai hak akses ini. hore

Note : Hanya untuk mereka yang baru memulai / harus / ingin mempelajari UNIX> Bagi temen2 yang sudah terbiasa menggunakan UNIX, membaca tulisan saya ini hanya buang-buang waktu. tersipu

Mungkin temen-temen pernah liat yg ky begini :

Code:
ditatompel@2nd-Heartbeat ~/codes/bot $ ls -lh
total 404K
drwxr-xr-x 2 ditatompel ditatompel 4.0K 2011-11-06 08:02 crayonbot
drwxr-xr-x 6 ditatompel ditatompel 4.0K 2011-11-10 23:32 devilzb0t
-rw-r--r-- 1 ditatompel ditatompel 1.2K 2011-10-06 14:09 emabot.py
-rw-r--r-- 1 ditatompel ditatompel 4.2K 2011-10-25 03:24 twc1.0.py
-rw------- 1 ditatompel ditatompel 3.7K 2011-10-26 03:28 webbot.py

Nah lo, Apaan tuh? om? bingung
Tenang, itu cuma list isi sebuah folder, mari kita perhatian ouput ini : 

Code:
drwxr-xr-x 2 ditatompel ditatompel 4.0K 2011-11-06 08:02 crayonbot

Sudah? Lihat pada spasinya. Di sana nampak ada 8 field!
Field 1 : drwxr-xr-x
Field 2 : 2 => sebuah angka yang menunjukan berapa user / group yang sedang mengeksekusi / mengakses file / folder tersebut.
Field 3 : ditatompel => menunjukan siapa yg memiliki file tersebut. ( Owner )
Field 4 : ditatompel => menunjukan siapa yg memiliki file tersebut. ( Group )
Field 5 : 4.0K => menunjukan besarnya file tersebut.
Field 6 dan 7 : 2011-11-06 08:02 =>adalah jam dan tanggal kapan terakhir kalinya file tersebut dimodifikasi.
dan terakhir : crayonbot => adalah nama file / folder itu sendiri.

Mari kita kupas yang field 1 lebih dalam, tapi jangan terlalu dalam... hammer
Field 1 : drwxr-xr-x
Apa itu bro?
Itu yang namanya permission di sistem UNIX. Normalnya ada 10 digit.
Sekarang biar bacannya gampang, liat 'unyu2' di bwh ini yang 'sesuatu banget' cerdas

Code:
d rwx r-x r-x
|  |   |   |
|  |   |   +-- user lain permission
|  |   +------ group permission
|  +---------- owner permission
+------------- tipe file -> (d) = directory / folder, (-) = file

Dengan penjelasan sebagai berikut :
r = Read -> boleh membaca
w = Write -> boleh memodifikasi
x = eXecute -> boleh mengeksekusi ( biasanya untuk aplikasi )

Jadi bisa disimpulkan bahwa kode drwxr-xr-x adalah :
Sebuah folder yang owner / pemilik boleh membuka, menulisi / mengubah / membuat file di dalam tersebut, sedangkan group dan user lain hanya boleh membaca dan mengeksekusi saja.

Kalau -rw-r--r-- ?
Berarti sebuah file yang user / pemilik file boleh membaca dan mengubah file, sedangkan yang lain hanya boleh membaca saja.

Trus kalau -rw------- ?
Berarti sebuah file yang user / pemilik file boleh membaca dan mengubah file, sedangkan user lain membaca file tersebut pun tidak diperkenankan. 

Di sini sudah ngerti? pinter Kalau udah, mari lanjut ke versi Binary dan Octal

UNIX Binary dan Octal File Permission
Pernah mengalami error / warning pada aplikasi website yg mengandung 'permission denied'?
lalu mencari solusinya di google dan banyak yang menyarankan ganti saja file permissionnya jadi 777?
Sekedar memberi tahu, permission 777 berarti anda memberikan hak kepada semua user untuk melihat, mengubah, dan mengeksekusi file / folder tersebut.
Sebelumnya jika belum bisa / belum tau bagaimana membaca binary, silahkan lihat di http://devilzc0de.org/forum/thread-12040.html

Code:
0: 000 => --- => 0
1: 001 => --x => 1
2: 010 => -w- => 2
3: 011 => -wx => 3
4: 100 => r-- => 4
5: 101 => r-x => 5
6: 110 => rw- => 6
7: 111 => rwx => 7

Sehingga :

Code:
0 --- tanpa permission
1 --x execute
2 -w- write
3 -wx write and execute
4 r-- read
5 r-x read and execute
6 rw- read and write
7 rwx read, write and execute

jadi jika anda mengubah file permission menjadi 777 maka -> drwxrwxrwx atau -rwxrwxrwx -> Damn sh17 happens and server bleed.. seneng

Untuk block file system ( karakter pertama ) sebenernya bukan cuma ( - ) sama ( d ) aja.. Ada yang lain juga seperti :
l => Symbolic link
c => Character special device
b => Block special device
p => FIFO
s => Socket
File system kek gini biasa banyak ditemui di directory /dev

Sedangkan untuk tipe file permiision selain - r w x ada juga access mode ( s ) sama stcky ( t ). nah untuk ( s ) bisa jd suid dan sgid.

Sekian dulu dari saya. Semoga berguna bagi teman2 yang baru mengenal Unix atau mungkin temen2 yang sedang memperdalam web hacking karena kebanyakan web server menggunakan Unix like OS. ketawa
Silahkan untuk teman2 lain yang ining memberi tambahan dan penjelasan lebih lengkap. ketawa 

Terima kasih. hore



Killu4 Wrote:  
Quote:l => Symbolic link
c => Character special device
b => Block special device
p => FIFO
s => Socket

Ada penjelasan lebih lanjut tentang yg ini ga om dita ?
poke om Killu4 dan om starsz³ ;
Ane coba jelasin semampu dan setahu ane yah.. ketawa

l => Symbolic link
Untuk symbolic link cara kerjanya mirip seperti shortcut. Jadi dia bisa bikin copy dari 1 file menjadi beberapa file ke direktori tertentu. Biasanya digunakan untuk konfigurasi aplikasi.
Contohnya bisa diliat dari gambar dibawah :

[Image: symlink.png]
Gambar diatas adalah contoh membuat symlink script admin-location-lookup-1.0.php pada folder /srv/http/devel/labs ke folder /home/dit/codes dengan nama file adminscan.
Jadi saat kita eksekusi file adminscan tersebut, maka secara tidak langsung kita mengeksekusi file /srv/http/devel/labs/admin-location-lookup-1.0.php

c => Character special device & b => Block special device
Untuk character special devices dan block special device biasanya merupakan file binary untuk driver / partisi / device tertentu. Misalnya usb modem / partisi yang ada pada harddisk.

[Image: special-device.png]

p => FIFO ( First In First Out )
Salah satu fitur istimewa dari Unix. Dengan FIFO memungkinkan data ditransfer dari satu aplikasi ke aplikasi lainnya.
FIFO fungsinya sama seperti "pipe". ( simbol | )
Misalnya penggunaan grep, sort, less, dll 

Code:
cat username.txt password.txt | grep admin | sort | less

Atau kalau ingin membuat contoh file FIFO bisa menggunakan command :

Code:
mkfifo namafile

Dari terminal itu coba jalankan perintah :

Code:
cat namafile

kemudian buka terminal lain, jalankan : 

Code:
cat > namafile

lalu ketikan kata2 pada terminal tersebut. Maka terminal sebelumnya akan mengeluarkan output dari terminal 1 nya.

[Image: fifo.png]
Untuk lebih jelas bisa lihat pada video yang sudah ane upload. ketawa

s => Socket
Sebuah file socket diciptakan oleh sistem ketika sebuah program melakukan 'bind' pada unix soket. Misalnya MySQL.

[Image: socket.png]
Ketika MySQL server dijalankan, maka sistem akan membuat file socket pada /var/run/mysql.sock atau /var/run/mysqld/mysqld.sock ( Tergantung sistem masing2 )

nah ane upload video di youtube, semoga lebih mudah memahami tentang FIFO dan socket.





sumber : devilzc0de