File Permission
A.
Konsep dasar file permission
Pada dasarnya konsep file permission di GNU/Linux adalah
suatu pengaturan kepemilikan file/folder berdasarkan user dan/atau group.
Kepemilikan file/folder bisa diberikan kepada user/group.
Secara garis besar file permission dibagi menjadi tiga yaituuser, group dan other.
Setiap file/folder di system file memiliki
tiga atribut yaitu owner,group, dan mode. Owner adalah id dari user pemilik file/folder tersebut. Group adalah giddari
grup dimana user pemilik file/folder tersebut
terdaftar. Mode adalah sederetan angka 0 dan 1 untuk
menyatakan flags akses terhadap suatu file/folder.
File Permision tujuannya adalah memahami kepemilikan dari file dan
direktori, melihat hak akses file, dan mengatur hak akses file sendiri.
Cara paling mudah untuk melihat atau mengetahui ketiga atribut tersebut
adalah dengan menjalankan perintah ls dengan memberikan opsi -l
rotyyu@sarimula:~/skrip$ ls -l total 12 -rwxr--r-- 1 rotyyu rotyyu 139
2007-10-30 20:00 eth_link_stat.sh -rwxr--r-- 1 rotyyu rotyyu 595 2007-10-30
20:32 mkdev.sh
Dari hasil perintah tersebut terlihat ada dua berkas yaitu eth_link_stat.sh
dan mkdev.sh (walaupun sebenarnya total ada 12, karena sudah diedit), yang
dapat diketahui dari kolom ke-9. Kedua berkas tersebut dimiliki oleh user rotyyu
(kolom ke-4) yang tergabung dalam grup rotyyu (kolom ke-5). Sedangkan mode atau permission berkas
tersebut dapat dilihat pada kolom ke-2 yang sama-sama bernilai rwxr—r--.
Penjelasan kolom lainnya adalah sebagai berikut, kolom pertama, tepat sebelum
kolom permission, menyatakan apakah sebuah berkas merupakan
direktori atau bukan, direktori dinyatakan dengan d sedangkan berkas biasa
(regular file) dinyatakan dengan –. Kolom ke-3 menyatakan
banyaknya hard link ke berkas tersebut (akan dibahas pada
kesempatan lain). Kolom ke-6, setelah nama grup, menyatakan ukuran dari berkas
tersebut dalam bytes. Kolom berikutnya merupakan informasi tanggal
dan waktu berkas terebut diubah terakhir kali.
Pada kolom permission, tiga karakter pertama merupakan
perizinan untuk userpemilik berkas tersebut (owner),
tiga karakter berikutnya untuk grup (group), dan sisanya untuk yang
lainnya (other). Karakter-karakter tersebut mewakili permission [r]ead (dapat
dibaca), [w]rite (dapat ditulis), dan e[x]cute (dapat
dieksekusi). Pengaturan filepermission dengan cara ini (menggunakan
karakter huruf) sebenarnya dapat dinyatakan dengan bilangan oktal (dan inilah
sebenarnya yang berlaku karena karakter rwx digunakan hanya untuk mempermudah).
Dalam sistem bilangan oktal (basis delapan), permission dinyatakan dalam tiga digit, 4 untuk r, 2 untuk w, dan 1 untuk x. Dari contoh sebelumnya dapat diketahui bahwa kedua berkas tersebut memiliki permission 744 (terkadang harus ditulis sebagai 0744, prefix 0 menyatakan bilangan oktal), yang dapat digambarkan sebagai berikut: bila ijin baca akan diberikan maka bit yang berisi r diisi dengan 1, sebaliknya jika ijin baca ditiadakan maka bit r diisi dengan 0, demikian juga untuk permission lainnya (write dan execute).
Dalam sistem bilangan oktal (basis delapan), permission dinyatakan dalam tiga digit, 4 untuk r, 2 untuk w, dan 1 untuk x. Dari contoh sebelumnya dapat diketahui bahwa kedua berkas tersebut memiliki permission 744 (terkadang harus ditulis sebagai 0744, prefix 0 menyatakan bilangan oktal), yang dapat digambarkan sebagai berikut: bila ijin baca akan diberikan maka bit yang berisi r diisi dengan 1, sebaliknya jika ijin baca ditiadakan maka bit r diisi dengan 0, demikian juga untuk permission lainnya (write dan execute).
user group other
rwx r-- r--
111 100 100
7 4 4
rwx r-- r--
111 100 100
7 4 4
B.
Memahami Kepemilikan File
Linux
membagi 3 kelas yang berhak mengakses sebuah file :
Owner,
yaitu Menentukan hak user pemilik file.
Group,
Menentukan hak kelompok pemilik file (setiap pemakai mempunyai group misalnya
sejumlah orang yang terlibat dalam sebuah proyek mempunyai group yang sama dan
berhak mengakses suatu file dengan hak akses yang sama).
Other, Menentukan hak pengguna selain user.
Untuk
menetapkan kepemilikan suatu berkas, dapat dilakukan dari konsole/terminal/shell
dengan bantuan perintah chown (“change own”) untuk mengubah user pemilik suatu
file/folder dan chgrp (“change group”) untuk mengubah grup. Contoh untuk
mengubah berkas eth_link_stat.sh menjadi milik user el_magnifico
$ chown el_magnifico eth_link_stat.sh
Untuk
mengubah grup menjadi barca
$ chgrp barca eth_link_stat.sh
NB :
perubahan ini hanya dapat dilakukan oleh user pemilik berkas atau root.
C.
Memahami Permission File
Ada
tiga jenis izin akses di Linux :
read, izin untuk membaca file.
write, izin untuk mengubah isi file.
execute, izin untuk mengeksekusi program.
Izin
ini didefinisikan secara terpisah untuk pemilik file, kelompok dan semua
pengguna lain.
1.
Pada file biasa, read berarti file dapat dibuka dan dibaca.
Pada sebuah drektori, read berarti dapat melihat daftar isi direktori.
2.
Write. Pada file biasa, ini berarti dapat
memodifikasi file, alias menulis data baru ke file. Dalam kasus sebuah
direktori, write berarti dapat menambah, menghapus, dan mengubah nama file
dalam direktori. Ini berarti bahwa jika file memiliki izin write,
diperbolehkan untuk memodifikasi isi file, tetapi diperbolehkan untuk mengubah
nama atau menghapus file hanya jika hak akses direktori file yang memungkinkan
untuk melakukannya.
3. Execute. Dalam kasus sebuah file
biasa, ini berarti dapat menjalankan file sebagai program atau shell script.
Pada sebuah direktori, execute (disebut juga “search bit”) memungkinkan untuk
mengakses file dalam direktori dan memasukkannya, dengan perintah cd.
Untuk
menetapkan permission dapat digunakan dengan dua cara yaitu menggunakan
bilangan oktal atau karakter. Perintah yang digunakan adalah chmod (“change
mode”) yang dijalankan dari CLI (Command Line Interface). Jika menggunakan
bilangan oktal, maka bit yang akan diset diisi dengan 1, dan jika ditiadakan
maka diisi dengan 0. Contoh, untuk menambahkan ijin eksekusi untuk berkas
mkdev.sh untuk group dan other.
$ chmod 755 mkdev.sh
Sedangkan
jika menggunakan karakter, maka perijinan diberikan dengan menyertakan tanda +
(plus) didepan karakter yang menyatakan suatu perijinan, dan tanda – (minus)
untuk meniadakan suatau perijinan. Karakter yang digunakan adalah
r -> read w -> write x -> execute
dan
untuk melambangkan siapa yang akan diberi permisi maka digunakan karakter
u -> user (owner) g -> group o -> other a
-> all, merupakan gabungan dari user+group+other
Contoh,
untuk meniadakan ijin baca untuk group dan other dari berkas eth_link_stat.sh
$ chmod og -w eth_link_stat.sh
Kedua
metode (menggunakan bilangan oktal atau karakter) ini sama saja, silakan
memilih sesuai dengan selera dan kemampuan. Cara kedua (menggunakan karakter)
relatif lebih mudah bila dibandingkan dengan cara pertama yang mengharuskan
seorang user memahami konversi bilangan berbasis oktal, biner, dan desimal.
NB :
peirijinan hanya dapat diubah oleh pemilik berkas atau root.
D. Mengatur Hak Akses
·
Mode simbolik
Pertama
: readers harus memutuskan apakah readers mengatur
hak akses untuk pengguna (u), kelompok (g), pengguna lainnya (o), atau
ketiganya (a).
Kedua : readers bisa menambahkan izin (+), menghapus (-), atau menghapus izin sebelumnya dan menambahkan izin yang baru (=)
Ketiga : tentukan perizinannya. Apakah readers mengatur izin read (r), write (w), execute (e), atau ketiganya.
Keempat : readers hanya tinggal memberikan perintah untuk chmod, hak akses mana yang akan di rubah.
Kedua : readers bisa menambahkan izin (+), menghapus (-), atau menghapus izin sebelumnya dan menambahkan izin yang baru (=)
Ketiga : tentukan perizinannya. Apakah readers mengatur izin read (r), write (w), execute (e), atau ketiganya.
Keempat : readers hanya tinggal memberikan perintah untuk chmod, hak akses mana yang akan di rubah.
Contoh:
Kita
mempunyai regular file bernama contohfile dan file memiliki izin akses
penuh pada semua kelompok (ada perintah ‘rwx’). Tampilan awal Perizinan file :
-rwxrwxrwx
-rwxrwxrwx
1.
Kita hapus semua hak akses yang sekarang dan mengganti dengan hanya izin read
untuk semua grup.
Syntax:
$chmod a=r contohfile Tampilan
akan menjadi : -r–r–r–
2. Selanjutnya kita akan memberikan izin
kepada grup (yang di tengah) untuk di tambahkan izin execute.
Syntax:
$ chmod g+x contohfile Tampilan akan menjadi
: -r–r-xr–
3. Selanjutnya kita akan memberikan izin
kepada semua grup untuk di tambahkan izin write.
Syntax:
$ chmod ugo+w contoh file Tampilan akan menjadi :
-rw-rwxrw-
4.
Selanjutnya kita akan menghapus izin execute yang ada pada grup (yg di tengah)
untuk di hapus.
Syntax:
$ chmod g-x
contohfile Tampilan
akan menjadi : -rw-rw-rw-
· Mode Numerik :
Mode dimana diwakili oleh 3 angka octal untuk
perizinan filenya.
Standar umumnya adalah:
Standar umumnya adalah:
4= read (r)
2= write (w)
1= execute (x)
0= tidak ada izin (-)
2= write (w)
1= execute (x)
0= tidak ada izin (-)
Jika ingin mendapatkan hak akses yang kita inginkan
kita hanya tinggal menjumlahkan angka yang sesuai .
Contoh:
1.
Kita ingin mendapatkan hak akses Read Write dan Execute secara bersamaan maka
numeriknya menjadi seperti ini:
Read + write + execute 4 + 2 + 1 = 7
2.
Kita ingin mendapatan hak akses read dan execute secara bersamaan maka
numeriknya akan menjadi seperti ini:
Read + Execute 4 + 1 = 5. Contoh penerapan pada
syntax:
$ chmod 755 contohfile
$ chmod 755 contohfile
Syntax diatas menunjukan hak akses untuk User adalah 7
(rwx), untuk grup adalah 5 (rx), dan untuk others juga 5 (rx).
Mode numerik mungkin tidak sesederhana mode simbolik,
tetapi dengan mode numerik.Which Number ?
0 —
1 –x
2 -w-
3 -wx
4 r–
5 r-x
6 rw-
7 rwx
1 –x
2 -w-
3 -wx
4 r–
5 r-x
6 rw-
7 rwx
Pemilik sebuah file atau direktori dapat diganti
menjadi milik user yang lain. Untuk mengganti digunakan perintah chown.
Berikut adalah cara penulisannya :
-chown option pemilik_baru nama_file/direktori
Untuk melihat kepemilikan suatu file dan group,
gunakan perintah ls dengan option -l
Contoh output dari perintah tersebut :
rw-rw-rw- 1 azizah azizah 0 Jan 23 05:32 contohfile
·
Terlihat nama azizah yang pertama adalah pemilik file dan nama azizah yang
kedua adalah nama groupnya. Secara default nama group sama seperti nama pemilik
file.
·
Untuk mengubah kepemilikan file contohfile dengan user lain, kita bisa
mengetikkan:
chown aku contohfile
·
Perintah tersebut mengubah kepemilikan contohfile menjadi milik user aku bukan
lagi user azizah. Untuk melihat perubahannya lihat kembali detailnya dengan
menggunakan perintah.
ls –l contohfile
ls –l contohfile
o
Salah satu option yang ada di chown adalah –R. Option –R ini mengubah
permission semua file yang ada dalam subdirektori dalam direktori yang sedang
aktif.
o
Option –R bekerja secara rekursif,option tersebut mengubah kepemilikan semua
objek yang ada dalam direktori bukan hanya kepemilikan direktorinya saja.
Contoh
penggunaannya:
chown -R aku work
Perintah ini memberikan chown permission bagi user aku
terhadap semua file yang ada di direktori work.
E.
Atribut File
Adalah
dimana sebuah file atau directori bisa eksis atau sebuah file mempunyai atribut
yang berbeda antara sistem operasi satu dengan yang lainnya.
Tipe File :
Menentukan Tipe File
Karakter
|
Arti
|
–
|
File biasa
|
d
|
Direktori
|
l
|
Symbolic link
|
b
|
Block special file
|
c
|
Character special file
|
s
|
Socket link
|
p
|
FIFO
|
·
Ijin
akses :
menentukan hak user terhadap file ini.
·
Jumlah
link :
jumlah link untuk file ini.
·
Pemilik (Owner) :
menentukan siapa pemilik file ini.
·
Group :
menentukan group yang memiliki file ini.
·
Jumlah
karakter :
menentukan ukuran file dalam byte.
·
Waktu
pembuatan : menentukan kapan file
terakhir dimodifikasi.
·
Nama
file :
menentukan nama file yang dimaksud.
F.
USERMASK
Untuk menentukan ijin akses awal pada saat file atau
direktori dibuat digunakan perintah umask. Untuk menghitung nilai default
melalui umask pada file, maka dapat dilakukan kalkulasi sebagai berikut :
Kreasi file (biasa) 6 6 6
Nilai
umask 0 2 2
------- -
6
4 4
Kreasi direktori 7 7 7
Nilai umask 0
2 2
------- -
7 5 5
Tidak ada komentar:
Posting Komentar