umask to wbudowane polecenie powłoki, które ustawia (albo wyświetla) maskę uprawnień dla nowo tworzonych plików i katalogów. Nie zmienia uprawnień istniejących plików — działa tylko na to, co dopiero powstanie. Zasada jest odwrotna niż w chmod: umask to bity, które mają zostać odjęte z uprawnień domyślnych. System startuje od 666 dla plików (rw dla wszystkich, bez wykonywalności) i 777 dla katalogów, a potem odejmuje maskę. Przy typowej masce 022 nowy plik dostaje 644, a katalog 755.
Składnia i najważniejsze opcje
Podstawowa forma: umask [-p] [-S] [maska]
umask— bez argumentów wyświetla aktualną maskę w notacji ósemkowej (np.0022).-S— pokazuje maskę w notacji symbolicznej (np.u=rwx,g=rx,o=rx). Uwaga: symbolika pokazuje uprawnienia, które zostaną nadane, a nie te odjęte.-p— wypisuje maskę w formie gotowej do ponownego użycia jako komenda (z przedrostkiemumask), przydatne do zapisania do skryptu.maskaósemkowa — np.umask 027ustawia maskę na trzy cyfry ósemkowe.maskasymboliczna — np.umask u=rwx,g=rx,o=ustawia to samo, tylko czytelniej.
Przykłady użycia
umask— sprawdzasz, jaka maska obowiązuje w bieżącej sesji.umask -S— to samo, ale w wersji symbolicznej, gdy nie chcesz w głowie liczyć666 - maska.umask 022— standard: nowe pliki dostają644, katalogi755. Grupa i inni mogą czytać.umask 077— tryb prywatny: nowe pliki600, katalogi700. Nikt poza właścicielem nie zajrzy. Dobre dla katalogów z sekretami.umask -p— wypisze coś w styluumask 0022, co możesz wprost wkleić do~/.bashrc.
Częste błędy i pułapki
Najczęstsza pomyłka to traktowanie umask jak chmod — to odejmowanie, nie ustawianie. Maska 022 nie znaczy „uprawnienia 022″, tylko „odejmij prawa zapisu grupie i innym”.
Druga pułapka: umask nie dodaje bitu wykonywalności. Pliki startują od 666, więc żadna maska nie zrobi z nowego pliku wykonywalnego — dlatego świeży skrypt i tak trzeba chmod +x.
Trzecia: umask to polecenie wbudowane powłoki, nie samodzielny program w /bin. Ustawienie działa tylko w bieżącej sesji i jej procesach potomnych. Żeby przetrwało reboot i nowe logowania, wpisz je do ~/.bashrc, ~/.profile albo systemowo (np. /etc/login.defs, /etc/profile). Wartość i sposób konfiguracji różnią się między dystrybucjami — Debian/Ubuntu i RHEL potrafią mieć inne domyślne maski (często 022, ale bywa 002 przy „user private groups”).