Umask діє як набір дозволів, які програми не можуть встановлювати на файли. Це маска створення файлового режиму для процесів і не може бути встановлена для самих каталогів. Більшість програм не створюють файли із встановленими дозволами на виконання, тому вони матимуть типовий параметр 666
, який потім змінюється umask.
Оскільки ви встановили umask для видалення бітів читання / запису для власника та бітів читання для інших, за замовчуванням, наприклад 777
у програмах, це призведе до отримання дозволу на файл 133
. Це означатиме, що ви (та інші) можете виконати файл, а інші зможуть записати його.
Якщо ви хочете, щоб файли не читав / записував / не виконував хтось, крім власника, вам слід скористатися umask, як 077
щоб вимкнути ці дозволи для групи та інших.
На противагу цьому, умаска 000
зроблять новостворені каталоги читабельними, доступними для запису та доступними для всіх (дозволи будуть 777
). Такий умаск є дуже небезпечним, і ви ніколи не повинні встановлювати його 000
.
Типовий umask на Ubuntu був, 022
що означає, що новостворені файли читаються всіма, але лише для власника, які можна записати:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
Починаючи з Ubuntu Oneiric (11.10), umask за замовчуванням був розслаблений до 002
, що розширює доступ для запису до групи власників:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Перегляд і модифікація umask
Щоб переглянути поточний параметр umask, відкрийте термінал і запустіть команду:
umask
Щоб змінити налаштування umask поточної оболонки на щось інше, скажімо 077, запустіть:
umask 077
Щоб перевірити, чи працює цей параметр чи ні, ви можете створити новий файл (на дозвіл файлів існуючого файлу це не вплине) та показати інформацію про файл, запустіть:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
Налаштування umask успадковується процесами, запущеними з тієї ж оболонки. Наприклад, запустіть текстовий редактор GEdit, виконавши gedit
в терміналі і збережіть файл за допомогою gedit. Ви помітите, що на новостворений файл впливає те саме налаштування umask, що і в терміналі.
Корпус: багатокористувацька система
Якщо ви перебуваєте в системі, якою поділяють декілька користувачів, бажано, щоб інші не могли читати файли у вашому домашньому каталозі. Для цього дуже корисний умаск. Відредагуйте ~/.profile
та додайте новий рядок за допомогою:
umask 007
Вам потрібно повторно увійти, щоб ця зміна умака набула ~/.profile
чинності. Далі вам потрібно змінити наявні дозволи файлів у вашому домашньому каталозі, видаливши біт для читання, запису та виконання для всього світу. Відкрийте термінал і виконайте:
chmod -R o-rwx ~
Якщо ви хочете, щоб цей параметр umask застосовано до всіх користувачів системи, ви можете відредагувати загальносистемний файл профілю за адресою /etc/profile
.
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-