Apa itu umask?

February 5, 2010

Here we go. Another simply note’s.

Setiap pagi sebelum berangkat kerja saya suka mengobrol tentang linux dengan teman sekamar saya. Kebetulan beliau sedang semangat2nya belajar linux. Dan pagi itu dia bertanya tentang apa itu umask? Emmn.. Saya tidak bisa langsung menjelaskannya saat itu. Karena saya juga sudah lupa detail perhitungannya. Yang saya jelaskan adalah fungsi umask sebagai default permission disystem2 unix/linux.

So, buat teman saya. With a little googling, here’s the explanation about what you ask. Have a nice read.. 😉

Umask:
Pernahkah terbayang, begitu kita membuat suatu file dilinux misal $ touch coba.tes maka hak aksesnya akan seperti bagaimana? Dan mengapa bisa hak aksesnya langsung seperti itu? Seperti contoh:

[onay@sandradewi ~]$ touch coba.tes
[onay@sandradewi ~]$ ll
total 0
-rw-rw-r-- 1 onay onay 0 Feb 5 20:48 coba.tes

Permission pada file coba.tes yang baru saya buat adalah -rw-rw-r-- atau bisa juga disebut 664. Yang jadi pertanyaan adalah, mengapa permissionnya bisa 644, kenapa bukan 755 atau yang lainnya?

Pada wikipedia dijelaskan Umask, singkatan dari (user mask) adalah sebuah command pada environment posix yang berfungsi untuk menset hak akses dari file yang akan dibuat oleh proses yang berjalan saat itu. Umask, memberi batasan hak akses untuk file dan direktori yang dibuat oleh suatu proses. Ketika shell atau program lain membuat suatu file atau direktori, umask memberikan permission tertentu.

Kembali kepertanyaan saya sebelumnya, jawabanya adalah karena sudah didefine default permissionnya dengan menggunakan umask. Pada mesin redhat yang saya gunakan untuk testing ini, settingan default permissionnya terdapat pada file /etc/bashrc. Pada file tersebut disetting umask 002 untuk user dan umask 022 untuk root. Nah, apa ini 002 atau 022?

Begini ceritanya.. 😆

Ada dua macam cara pengoperasian umask. Yang pertama menggunakan symbolic umask dan yang kedua menggunakan nomer octal. Berikut saya berikan kedua contohnya:

Symbolic umask ~
Symbolic umask, menggunakan simbol huruf u=rwx,g=rwx dan o=rwx. Yang artinya u = user, g = group dan o = others. Sedangkan rwx adalah read, write dan execute. Sama seperti pada command chmod. Contohnya:

[onay@sandradewi ~]$ umask u=rwx,g=rwx,o=
[onay@sandradewi ~]$ mkdir co
[onay@sandradewi ~]$ touch ba
[onay@sandradewi ~]$ ll
total 4
-rw-rw---- 1 onay onay 0 Feb 5 23:27 ba
drwxrwx--- 2 onay onay 4096 Feb 5 23:27 co

Dengan perintah diatas, maka setiap file yang dibuat menjadi -rw-rw—- dan folder yang dibuat menjadi drwxrwx—. Yang jadi pertanyaan adalah, kenapa pada file menjadi -rw-rw—-, bukannya -rwxrwx—? Ternyata ada perlakuan berbeda pada umask untuk file dan folder. Untuk folder maksimal permissionnya adalah u=rwx, g=rwx, o=rwx atau 777 sedangkan pada file adalah u=rw, g=rw, o=rw atau 666. Jadi walaupun pada command diatas umask adalah rwx maka hasilnya akan menjadi rw untuk file dan baru rwx untuk folder.

Octal umask ~
Octal umask, menggunakan 4 digit bilangan octal. Tapi pada prosesnya hanya 3 digit yang dipakai. Untuk file, maksimal adalah 0666 dan 0777 untuk folder. Contohnya:

[onay@sandradewi ~]$ umask 000
[onay@sandradewi ~]$ mkdir co
[onay@sandradewi ~]$ touch ba
[onay@sandradewi ~]$ ll
total 4
-rw-rw-rw- 1 onay onay 0 Feb 6 01:19 ba
drwxrwxrwx 2 onay onay 4096 Feb 6 01:19 co

000 pada octal umask ini maksudnya adalah rw atau 666 untuk file dan rwx atau 777 untuk folder. Cara perhitungannya adalah:
Untuk file, maksimal adalah 666. Jadi bila octalnya 002 maka real permissionnya menjadi rw,rw,r atau 6-0,6-0,6-2 = 664. Untuk folder adalah 777, bila octalnya 022 maka real permissionnya menjadi rwx,rx,rx atau 7-0,7-2,7-2 = 755. Gampang kan? 😎

Begitulah kira2. Bila masih kurang jelas bisa merujuk langsung referensi saya disini dan disini. Semoga mengerti dan semoga bermanfaat.

Have a nice weekend!!

Cheers. 😛

Advertisements

6 Responses to “Apa itu umask?”

  1. abee Says:

    thx 4 ur knowledge… keep shared…

  2. onay Says:

    ur welcome.. 😛

  3. Setiawan Says:

    thanks buat informasinya.. 🙂


  4. itu belum jelas tentang 7-0,7-2,7-2 , itu dpt nya drmana

    • onay Says:

      7-0,7-2,7-2 adalah cara membaca octalnya, kalau kita mau set umask dengan command # umask 022 disuatu direktori berarti kita menset default permission menjadi 7-0,7-2,7-2.

  5. Joseph Says:

    makasih bro…


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: