Menghitung User mask (umask).

Yeah, umask atau user mask merupakan misteri yang kelihatan rumit untuk dipecahkan :). Berhubung ‘setingkat pengguna’ jarang bersentuhan dengan umask ini maka sangat sedikit yang mengerti cara menghitung user mask ini, walaupun mungkin sebagian besar sudah tau kegunaannya. Namun jika anda adalah linux/unix admin maka penting untuk mengetahui cara menghitung user mask 😉

Menurut info dari wikipedia, cara menghitung user mask adalah dengan melakukan operasi AND pada nilai oktal 666 untuk files dan 777 untuk direktori terhadap nilai NOT umask yang diberikan. Bingung kan ? 😀

Untuk lebih asyiknya, kita ambil contoh saja, misalnya nilai umask yang ada adalah 002:

[rizahnst@desktop ~]$ umask

0002

[rizahnst@desktop ~]$ umask -S

u=rwx,g=rwx,o=rx

[rizahnst@desktop test]$ touch file

[rizahnst@desktop test]$ mkdir directory

[rizahnst@desktop test]$ ls -l
total 4
drwxrwxr-x 2 rizahnst rizahnst 4096 Jul 16 10:07 directory
-rw-rw-r– 1 rizahnst rizahnst    0 Jul 16 10:06 file

Jadi untuk setiap file dengan umask 002 berlaku permisi u=rw,g=rw,o=r dan untuk direktory u=rwx,g=rwx,o=rx, bagaimana hal ini bisa terjadi? Ayo kita cari tau!

file:

6668 AND NOT (0028) = ?

direktory:
7778 AND NOT (0028) = ?

Ok, nilai dalam bentuk oktal (basis 8 ) ini kita rubah dulu ke bentuk biner (basis 2), sehingga menjadi

file:
(110 110 110)2 AND NOT(000 000 010)2 = ?

direktory:
(111 111 111)2 AND NOT(000 000 010)2 = ?

Operasi AND mencari hasil 2 atau lebih nilai yang ada, misal nilai 1 dengan 1 hasilnya 1, nilai 1 dengan 0 hasil 0, mungkin lebih baik baca http://en.wikipedia.org/wiki/Bitwise_operation#AND agar jelas maksudnya (kalau pernah belajar perhitungan nilai biner seharusnya sudah mengerti)

Operasi NOT mencari nilai dengan membalikkan nilai yang diberikan, jika diberi nilai 1 maka hasilnya 0, nilai 0 hasilnya 1, (bisa baca di http://en.wikipedia.org/wiki/Bitwise_operation#NOT)

sehingga menjadi:
file:
(110 110 110)2 AND (111 111 101)2 = (110 110 100)2 -> 664 -> -rw-rw-r–

direktory
(111 111 111)2 AND (111 111 101)2 = (111 111 101)2 -> 775 -> -rwxrwxr-x

Ok, bagaimana kalau umask 022 ?

file:
6668 AND NOT (0228) = ?

(110 110 110)2 AND NOT(000 010 0102) = ?

(110 110 110)2 AND (111 101 101)2 = (110 100 100)2 -> 644 -> -rw-r–r–

direktory:
7778 AND NOT (0222) = ?

(111 111 111)2 AND NOT(000 010 0102) = ?
(111 111 111)2 AND (111 101 101)2 = (111 101 101)2 -> 755 -> -rwxr-xr-x

Nah, bagaimana ? sudah agak jelas ya 😀

[rizahnst@desktop ~]$ umask -p 0022

[rizahnst@desktop ~]$ umask

0022

[rizahnst@desktop ~]$ umask -S

u=rwx,g=rx,o=rx

[rizahnst@desktop test]$ touch file && mkdir directory

[rizahnst@desktop test]$ ls -l
total 4
drwxr-xr-x 2 rizahnst rizahnst 4096 Jul 16 11:30 directory
-rw-r–r– 1 rizahnst rizahnst    0 Jul 16 11:30 file

This entry was posted in Information Technology, my life. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>