Feed on
Posts
Comments

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 menghitungnya, walaupun mungkin sebagian besar sudah tau kegunaannya. Namun jika anda adalah linux/unix admin maka penting untuk mengetahui cara menghitung umask ;)

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

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 :D

[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
 

Trackback URI | Comments RSS

Leave a Reply

Boycott Trend Micro