Hak Akses File Pada UNIX


  • SPYRO KiD
  • admin[~@t~]spyrozone[~d.t~]net
  • Friday, October 5th, 2007
  • CopyLEFT (c) 2011++ www.spyrozone.net All Rights Reserved


Pada Unix/Linux, setiap user memiliki hak akses sendiri terhadap suatu file. Jadi, user dapat mengatur siapa saja yang dapat mengakses file-file yang dimilikinya. User dapat menentukan apakah file itu hanya dapat diakses oleh dirinya sendiri(user), dapat diakses oleh group, ataukah dapat diakses oleh setiap user (other). Artikel ini akan memberikan panduan singkat untuk lebih mengenal hak akses pada sistem Unix/Linux.

…o(0)o…
…oO0–( Peringatan Penulis )–0Oo…

Artikel ini hanya ditujukan untuk newbie. Membaca artikel ini dalam dosis tinggi untuk anda yang telah expert dalam perintah-perintah UNIX dapat menyebabkan timbulnya gejala kebosanan yang luar biasa x_x

…o(1)o…
…oO0–( Atribut & Hak Akses File )–0Oo…

Pada dasarnya, ada 3 tipe hak akses yang dapat diterapkan pada sebuah file:

  1. Read (r)
    File dengan hak akses ini berarti file tersebut hanya bisa dibacasaja.
  2. Write (w)
    File dengan hak akses write dapat dibaca sekaligus dapat dimodifikasi.
  3. Execute (x)
    File dengan hak akses Execute dapat dijalankan/dieksekusi.

Untuk melihat hak akses suatu file, anda dapat menggunakan perintah ls -l. Baca artikel terdahulu mengenai penjelasan perintah tersebut.

Pengubahan hak akses suatu file dapat dilakukan dengan menggunakan perintah chmod. Struktur dasar dari perintah tersebut ialah:

chmod [OPTION] [--recursive] [--changes] [--silent] [--quiet] [--verbose] [--help] [--version] mode file…

OPTION:

-c, –changes
Verbose, menampilkan hanya file-file yang memiliki hak akses yang berubah.

-f, –silent, –quiet
Tidak menampilkan pesan kesalahan mengenai file-file yang hak aksesnya tidak dapat dirubah.

-v, –verbose
Verbose, menampilkan penjelasan perubahan hak akses.

-R, –recursive
Secara rekursif merubah hak akses direktori dan isinya.

–help
Menampilkan cara penggunaan program.

–version
Menampilkan informasi versi program.

Perintah chmod merubah hak akses file menurut mode. Mode disini dapat berupa sebuah simbol atau angka oktal yang mewakili pola bit untuk membuat perubahan hak akses yang baru.

chmod tidak akan merubah hak akses dari symbolic link; Sistem call chmod tidak dapat mengubah hak akses file-file tersebut. Hal ini bukan suatu masalah karena hak akses symbolic link tidak pernah digunakan. Walaupun demikian, setiap symbolic link yang diberikan pada baris perintah bersama dengan chmod merubah hak akses dari file yang dituju. Tapi chmod mengabaikan symbolic link yang menuju ke direktori lain.


…oO0—( Penggunaan mode simbol

Struktur dasar perintah untuk penggunaan mode simbol ialah sebagai berikut:

‘[ugoa...][[+-=][rwxXs­tugo...]…][,...]‘

Bingung yach?? gini nich.. Arti dari simbol-simbol diatas yaitu:

u —> pemilik(user)

g —> group

o —> other, untuk user lain bukan didalam grup

a —> seluruh user

+ —> Tanda ini menyebabkan sebuah hak akses tersebut ditambahkan ke sebuah file. – —> Tanda ini berlaku sebaliknya, yaitu menyebabkan hak akses dihapus.

= —> TAnda ini menyebabkan hanya hak akses itu saja yang dimiliki oleh file yang bersangkutan.

Adapun huruf-huruf ‘rwxXstugo’ ialah bagian untuk memilih hak akses baru:

r —> hak akses baca

w —> hak akses tulis

x —> hak akses eksekusi

X —> mengeksekusi hanya bila file adalah sebuah direktori atau sudah memiliki hak akses eksekusi untuk beberapa user.

s —> mengeset ID user atau ID group pada saat eksekusi

t —> menyimpan teks program pada swap device

u —> hak akses untuk user yang telah memilikinya

g —> hak akses untuk user lain dalam grup yang telah memilikinya

o —> hak akses untuk user lain bukan dalam grup yang telah memilikinya

Contoh:

spyro@spyrozone:~$ ls -l
total 28
drwxr-xr-x 2 spyro spyro 4096 Sep 30 15:44 Desktop
drwxr-xr-x 5 spyro spyro 4096 Mar 25 2006 GNUstep
drwxr-xr-x 2 spyro spyro 4096 Sep 30 14:45 linuX
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 none
-rw-r–r– 1 spyro spyro 12 Sep 30 15:55 spyrozone.net
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 tmp

Terlihat bahwasanya disana terdapat 5 buah directory dan sebuah file dengan nama spyrozone.net. Perhatikan file spyrozone.net. File tersebut memiliki hak akses:

-rw-r–r–

(-) menandakan bahwa spyrozone.net bertipe file. (rw-) menandakan bahwa user (pemilik) file spyrozone.net dapat melakukan akses read (r), write(w), tanpa eksekusi (-). Sementara group hanya memiliki hak akses (r–). Artinya group hanya dapat melakukan pembacaan file spyrozone.net, tanpa dapat memodifikasi file tersebut. Begitu juga others. Sekarang kita reset hak akses other spyrozone.net dengan simbol =rw sehingga other dapat membaca dan memodifikasi file tersebut:

spyro@spyrozone:~$ chmod o=rw spyrozone.net

Sekarang kita lihat perubahan hak akses spyrozone.net dengan perintah ls -l

spyro@spyrozone:~$ ls -l
total 28
drwxr-xr-x 2 spyro spyro 4096 Sep 30 15:44 Desktop
drwxr-xr-x 5 spyro spyro 4096 Mar 25 2006 GNUstep
drwxr-xr-x 2 spyro spyro 4096 Sep 30 14:45 linuX
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 none
-rw-r–rw- 1 spyro spyro 12 Sep 30 15:55 spyrozone.net
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 tmp

Tuch khan, hak akses file spyrozone.net kini telah berubah menjadi -rw-r–rw-. Artinya, user dan other kini dapat membaca dan memodifikasi file tersebut. Sekarang kita sisipkan atribut w pada group dengan simbol +w supaya group juga dapat membaca dan memodifikasi file spyrozone.net:

spyro@spyrozone:~$ chmod g+w spyrozone.net

Kita lihat perubahannya dengan ls -l

spyro@spyrozone:~$ ls -l
total 28
drwxr-xr-x 2 spyro spyro 4096 Sep 30 15:44 Desktop
drwxr-xr-x 5 spyro spyro 4096 Mar 25 2006 GNUstep
drwxr-xr-x 2 spyro spyro 4096 Sep 30 14:45 linuX
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 none
-rw-rw-rw- 1 spyro spyro 12 Sep 30 15:55 spyrozone.net
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 tmp

Ahaa.. kini hak akses file spyrozone.net telah berubah menjadi -rw-rw-rw-. Artinya, user, group dan other kini dapat membaca dan memodifikasi file tersebut. Mudah bukan? ;)


…oO0—( Penggunaan mode numerik

Mode numerik menggunakan angka satu sampai empat oktal (0-7), diperoleh dengan penambahan nilai bit 4, 2 dan 1. Perhatikan tabel berikut:

Angka

Hak akses

Keterangan

1

–x

Execute

2

-w-

Write

3

-wx

Write, Execute

4

r–

Read

5

r-x

Read, Execute

6

rw-

Read, Write

7

rwx

Read, Write, Execute

Okay, biar nggak bingung, kita langsung ke contoh aja yach. Lihat daftar file dengan perintah ls -l

spyro@spyrozone:~$ ls -l
total 28
drwxr-xr-x 2 spyro spyro 4096 Sep 30 15:44 Desktop
drwxr-xr-x 5 spyro spyro 4096 Mar 25 2006 GNUstep
drwxr-xr-x 2 spyro spyro 4096 Sep 30 14:45 linuX
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 none
-rw-r–r– 1 spyro spyro 12 Sep 30 15:55 spyro.txt
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 tmp

Terlihat bahwasanya disana terdapat 5 buah directory dan sebuah file dengan nama spyro.txt yang memiliki hak akses -rw-r–r– (udah tau khan artinya?)

Nah, kini akan kita ubah hak akses file tersebut menjadi -rw-rw-r–. Maka kita cukup mengetikkan:

spyro@spyrozone:~$ chmod 664 spyro.txt

Lho, dari mana angka 664 didapatkan?? Perhatikan tabel berikut:

User

Group

Other

6

6

4

rw-

rw-

r–

Nah, sekarang udah ngerti khan?? ;)

Okay, kini kita lihat perubahannya dengan perintah ls -l

spyro@spyrozone:~$ ls -l
total 28
drwxr-xr-x 2 spyro spyro 4096 Sep 30 15:44 Desktop
drwxr-xr-x 5 spyro spyro 4096 Mar 25 2006 GNUstep
drwxr-xr-x 2 spyro spyro 4096 Sep 30 14:45 linuX
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 none
-rw-rw-r– 1 spyro spyro 12 Sep 30 15:55 spyro.txt
drwxr-xr-x 2 spyro spyro 4096 Mar 25 2006 tmp

Yuppy.. hak akses untuk file spyro.txt kini telah berubah menjadi -rw-rw-r–

…o(2)o…
…oO0–( umask (User Mask) )–0Oo…

Ketika suatu file atau folder pertamakali diciptakan, system akan membuat atribut default terhadap file/directory tersebut. Dengan perintah umask, kita dapat menentukan sendiri atribut default untuk file/directory yang baru diciptakan.

Atribut default yang diberikan oleh system sebenarnya mnemiliki kalkulasi sebagai berikut:

Atribut File : 666

Nilai umask : 022

———————– -

Atribut default : 644

Atribut Directory : 777

Nilai umask : 022

———————– -

Atribut default : 755

Kita dapat mengubah-ubah sendiri nilai umask dengan mengetikkan perintah:

$ umask <nilai umask>

Contoh:

$ umask 000

Maka, nantinya file baru yang tercipta akan memiliki atribut:

Atribut File : 666

Nilai umask : 000

———————– -

Atribut default : 666

Dan nantinya directory baru yang tercipta akan memiliki atribut:

Atribut directory : 777

Nilai umask : 000

———————– -

Atribut default : 777

…o(3)o…
…oO0–( Latihan Yuuk! )–0Oo…

———————————————————————————–
Percobaan 1 : Ijin Akses
———————————————————————————–

1. Melihat identitas diri melalui etc/passwd atau etc/group, informasi apa yang ditampilkan ?
$ id
$ grep <user> /etc/passwd
$ grep [Nomor group id] /etc/group

2. Memeriksa direktori home
$ ls -ld /home/<user>

3. Mengubah Ijin akses (chmod). Perhatikan ijin akses setiap perubahan !
$ touch f1 f2 f3
$ ls -l
$ chmod u+x f1
$ ls –l f1
$ chmod g=w f1
$ ls –l f1
$ chmod o-r f1
$ ls –l f1
$ chmod a=x f2
$ ls –l f2
$ chmod u+x,g-r,o=w f3
$ ls –l f3
$ chmod 751 f1
$ chmod 624 f2
$ chmod 430 f3
$ ls –l f1 f2 f3

4. Mengganti kepemilikan digunakan perintah chown. Masuk ke root untuk mengganti kepemilikan tersebut.
$ su root
$ echo Hallo > f1
$ ls –l f1
$ chown <user-baru> f1 contoh : chown student1 f1
$ ls –l f1

5. Ubahlah ijin akses home directory <user> (student) pada root sehingga <user-baru> (student1) pada satu group dapat mengakses home direktory <user>. Hal ini dimaksudkan agar file f1 yang sudah diubah kepemilikannya dapat diakses <user-baru>. Perubahan ijin akses home directory <user> hanya dapat dilakukan pada root.
$ chmod g+rwx /home/<user> contoh : chmod g+rwx /home/student
$ ls –l /home
$ exit

6. Sekarang cobalah untuk subtitute user ke <user-baru> (student1). Cobalah untuk mengakses file f1
$ su <user-baru>
$ ls –l f1
$ cat f1
$ exit

7. Mengubah group dengan perintah chgrp
$ grep root /etc/group
$ grep other /etc/group
$ su
$ chgrp root f1
$ ls –l f1
$ chgrp <group-baru> f3
$ ls –l f3
$ exit

———————————————————————————–
Percobaan 2 : User Mask
———————————————————————————–

1. Menentukan ijin akses awal pada saat file atau direktori dibuat
$ touch myfile
$ ls -l myfile

2. Melihat nilai umask
$ umask

3. Modifikasi nilai umask
$ umask 027
$ umask
$ touch file_baru
$ mkdir mydir
$ ls -l
$ umask 077
$ touch xfiles
$ mkdir xdir
$ ls -l

.o(4)o.
…oO0–( PENUTUP )–0Oo…

Yuuhuu… kini anda telah memahami mengenai konsep hak akses dan bagaimana cara melakukan perubahan hak akses suatu file pada Sistem Operasi Linux. Semoga artikel ini dapat memberikan manfaat bagi anda, terutama bagi mereka yang baru memulai mencicipi betapa nikmatnya berkelana diatas OS Linux, the Hackers OS ^_^

Bubbay.. keep learning and happy hacking! ;)


//E.O.F