Príkaz umask

V predchádzajúcom článku sme sa venovali štandardným právam súborov. Ak ste sa zamysleli nad tým, odkiaľ vlastne berie systém práva už keď vytvárate nejaký súbor alebo adresár. Odpoveď na túto otázku je práve príkaz umask. Ihneď po prihlásení do príkazového riadku je už prednastavený. Ak ste ho nijak nemenili, potom štandard vychádza zo systému prípadne vám ho mohol nadefinovať administrátor. Zistiť aktuálne nastavenie si môžete zapísaním príkazu.

[jano@srv2 ~]$ umask
002
[jano@srv2 ~]$

Ako príkaz umask funguje? Tu sa líšia prednastavené práva súborov a adresárov. Vytvorme si nový súbor a nový adresár a porovnajme si jednotlivé práva:

[jano@srv2 ~]$ touch subor
[jano@srv2 ~]$ mkdir adresar
[jano@srv2 ~]$ ll
total 4
drwxrwxr-x 2 jano jano 4096 Feb 14 11:13 adresar
-rw-rw-r– 1 jano jano    0 Feb 14 11:13 subor
[jano@srv2 ~]$

Práva pri vytváraní sa generujú podľa nasledovného vzorca:

Plné práva – Hodnota umask = Práva súboru

Práve plné práva sú definované rozdielne pre súbor a adresár. V prípade súborov sa štandardne neprideľuje právo vykonať (execute) a plné práva sú práve číslo 666. Pri adresároch je právo execute doležitý práve pre vstup do adresára. Bez tohto práva nám systém veľa nedovolí. Preto plné právo je definované pri adresároch hodnotou 777.

V našich prípadoch dostal súbor práva 664 a to práve z výpočtu 666 – 002 = 664.

-rw-rw-r– 1 jano jano    0 Feb 14 11:13 subor

Adresár dostal práva 777 – 002 = 775.

drwxrwxr-x 2 jano jano 4096 Feb 14 11:13 adresar

Štandardne je umask definovaná hodnota umask v /etc/bashrc pre bash alebo v /etc/profile pre iné príkazové riadky (napr. ksh).

root@srv2 /etc $ grep umask /etc/bashrc
umask 002
root@srv2 /etc $

Pre svoje potreby si môžete zmeniť túto hodnotu v domovskom adresári v súbore:

.bashrc
.bash_profile
.profile

Stačí pridať riadok na koniec jedného z týchto súborov nový riadok s inou hodnotou:

umask 027

Po novom prihlásení už budete vytvárať súbory a adresáre nasledovne:
[jano@srv2 ~]$ mkdir adresar1
[jano@srv2 ~]$ touch subor1
[jano@srv2 ~]$ ll
drwxr-x— 2 jano jano 4096 Feb 14 11:28 adresar1
-rw-r—– 1 jano jano    0 Feb 14 11:28 subor1
[jano@srv2 ~]$

Názorná ukážka slabšieho paranoika :). Prenastaviť si pre aktuálny spustený shell možete jednoduchým zapísaním novej hodnoty umasku:

[jano@srv2 ~]$ umask 027
[jano@srv2 ~]$

Týmto sme tému umask vyčerpali, v ďalšom článku sa budem venovať nadstavbovým právam a neskôr špeciálnym právam cez access control list.

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera