10 June 2010

Perbedaan umask dan chmod ( umask vs chmod )


Sistem File


Atribut File
File mempunyai beberapa atribut antara lain :
  • Tipe File
-     = file adalah file biasa
d    = file adalah sebuah direktori
l      = file adalah symbolic link
b     = Representasi dari alat-alat yang berkomunikasi dengan komputer dalam bentuk block.
c     = Representasi dari alat-alat yang berkomunikasi dengan komputer dalam bentuk unit byte.
  • Ijin Akses
  • Jumlah Link
  • Pemilik (Owner)
  • Group
  • Jumlah Karakter
  • Waktu Pembuatan
  • Nama File
Contoh :
Ijin Akses
Di dalam Linux, hak akses file menggunakan konsep yang sangat sederhana bila dibandingkan dengan Windows. Linux mengenal tiga jenis hak akses file yaitu :
1. read (r)
Akun yang memiliki akses read ke suatu file akan dapat membaca file tersebut. Misalnya dengan perintah cat. Akun yang memiliki akses ke suatu direktori akan dapat melihat isi direktori tersebut, misalnya dengan perintah ls.
2. write (w)
Akun yang memiliki akses write ke suatu file akan dapat mengedit maupun menghapus file tersebut. Akun yang mempunyai hak akses write pada suatu direktori akan dapat membuat ataupun menghapus file yang ada di dalam direktori tersebut.
3. execute (x)
Akun yang memiliki akses execute pada suatu file akan dapat menjalankan file tersebut. Akun yang memiliki akses execute ke direktori adan dapat masuk ke direktori tersebut, misalnya dengan perintah cd.
Selain hak akses file yang sederhana, konsep unik lainnya yang ada di Linux adalah tentang kepemilikan file. Setiap file di Linux dimiliki oleh sebuah akun user, dan sebuah akun group. Akun user yang memiliki suatu file di sebut owner, dan group pemilik file disebut group owner.  User owner dan group owner suatu file dapat memiliki hak akses yang berbeda terhadap file tersebut, berbeda dengan akun-akun lainnya.
Contoh :
Penjelasan :
  • User owner dari file idsaya adalah user ivan. User owner ini ditentukan sistem secara otomatis berdasarkan identitas akun yang membuat file tersebut. Sebagai user owner, user ivan memiliki hak aksesnya tersendiri. Dalam contoh, rwx.
  • Group owner dari file idsaya adalah group ivan. Group owner ini ditentukan sistem secara otomatis berdasarkan primary group dari akun yang membuat file tersebut. Sebagai group owner, group ivan memiliki hak aksesnya tersendiri, r-x. Jadi anggota-anggota dari group ivan akan dapat membaca dan menjalankan file idsaya, tetapi tidak bisa mengedit atau menghapusnya.
  • Selain hak akses bagi user owner dan group owner, pada contoh juga terlihat ada yang namanya hak akses bagi other.  other disini berarti akun lain yang ada disistem, kecuali owner, group owner dan user root.
Mengubah Kepemilikan File
User owner dari suatu file dapat diganti oleh root dengan perintah chown. Akun biasa tidak diperbolehkan melakukan ini meskipun ia adalah user owner dari file yang ingin diubah. Sintaks chown untuk keperluan ini adalah :
# chown userownerbaru file_atau_direktori
Akun biasa yang merupakan user owner dari suatu file hanya bisa melakukan penggantian group owner, namun pemindahan ini juga hanya boleh dilakukan ke group-group yang user itu sendiri merupakan anggota. Sintaks chgrp untuk keperluan ini adalah :
# chgrp groupowner file_atau_direktori
Pada contoh berikut, saya akan mengganti kombinasi user owner/group owner dari root/root menjadi ivan/ivan.
Mengubah Hak Akses File
Pengubahan hak akses file dilakukan melalui perintah chmod. Hal ini hanya dapat dilakukan oleh root atau owner dari file yang bersangkutan. Sintaks chmod adalah :
$ chmod permission file_atau_direktori
Berikut ini adalah symbol singkatan yang dapat digunakan untuk mengisi parameter permission :
u             = user
g              = group
o             = others
a              = all (user, group,others)
r              = read
w            = write
x              = execute
-              = hilangkan
+             = tambahkan
Contoh :
Pada contoh diatas, pertama-tama saya akan menghapus hak execute dari user owner, group owner dan others. Agar lebih cepat saya akan menambahkan singkatan “a” yang berarti all. Setelah itu menambahkan kembali hak akses execute ini ke others, dan membuktikan efeknya dengan menjalankan perintah idsaya dengan login sebagai fajar.
Perhatikan ada dua perintah chmod pada contoh diatas, yang pertama dijalankan dengan parameter “a-x”, dan yang kedua dengan “o+x”. Parameter “a-x” berarti all (user, group, others) dihilangkan (tanda -) hak akses execute(x)nya. Selain itu perintah dengan parameter o+x menambahkan (tanda +) kembali hak execute (x) ini untuk others (o), sehingga user fajar dapat menjalankan idsaya.
Selain dengan singkatan, hak akses dapat juga diubah dengan angka. Dalam penggunaan angka ini, masing-masing komponen rwx, direpresentasikan oleh angka biner : bit 1 untuk menandakan aktif/on, dan bit 0 menandakan tidak aktif/off.


Hak Akses (rwx)
Representasi Biner
Desimal
- – -
0 0 0
0
- – x
0 0 1
1
- w -
0 1 0
2
- w x
0 1 1
3
r – -
1 0 0
4
r – x
1 0 1
5
r w -
1 1 0
6
r w x
1 1 1
7


Contoh :
Misalkan, kita ingin memberikan akses read, write dan execute (rwx) ke user owner, akses read dan write (rw-) ke group owner, dan akses read (r–) ke akun lainnya. Maka kita dapat mencari masing-masing hak akses dengan melihat table untuk mendapatkan angkanya.
User owner = r w x = 7
Group owner = r w - = 6
Others = r – - = 4
Ini berarti hak akses rwxrw-r—adalah sama dengan 764, sehingga kita dapat langsung menggunakan angka 764 sebagai parameter perintah chmod.


Umask : Mengatur Hak Akses Default
Linux menyediakan apa yang dinamakan umask (singkatan dari user file-creation mode mask). Dengan mengganti nilai umask, kita dapat mengatur hak akses default yang secara otomatis akan dimiliki oleh setiap file dan direktori yang dibuat user.

Kita dapat mengatur nilai umask dengan memberikan parameter-parameter hak akses kepada perintah umask. Contoh :

Kita lihat dulu isi umask defaultnya, dengan perintah umask –S , selanjutnya merubah hak akses nya, dengan memberikan hak akses rwx ke user owner, r– ke group owner dan — ke others. Selanjutnya lihat kembali dengan perintah umask –S, untuk melihat perubahannya.
Penjelasan :

Sekarang perhatikan contoh diatas, terlihat bahwa hak akses direktori dirA dan dirB adalah rwx, atau sesuai dengan umask yang telah diatur. Akan tetapi, hak akses user owner untuk file_a dan file_b adalah rw-, dan bukan rwx sebagaimana yang diinginkan. Mengapa demikian ? Ternyata umask hanya boleh dipakai untuk mengatur hak execute pada direktori, dan tidak pada file.
Umask juga dapat diatur dengan angka-angka seperti chmod. Bedanya adalah angka-angka yang dimasukkan ke umask adalah kebalikan dari hak akses yang ingin diatur. Kita dapat memakai persamaan berikut untuk mengetahui hubungan antara umask dan hak akses file / direktori yang diinginkan :
Hak akses direktori = 777 – umask
Hak akses file = 666 – umask
Contoh, jika hak akses direktori yang diinginkan adalah 755 (rwxr-xr-x), maka nilai umask dapat dihitung menjadi :

755 = 777 – umask
Umask = 777 – 755
Umask = 022
Sehingga hak akses file akan otomatis menjadi :
Hak akses file = 666 – 022
Hak akses file = 644

2 comments: